Organización de un Sistema Operativo - ProfesorPonce (Sección Alumnos)

Breaking

Profesional Review Magazine

sábado, 11 de septiembre de 2010

Organización de un Sistema Operativo

Analizaremos la organización interna de un sistema operativo desde el punto de vista del análisis técnico práctico.

El núcleo fundamental de un Sistema Operativo es lo que conocemos como KERNEL. El Kernel de un sistema operativo está formado por conjuntos de programas ejecutivos, servicios funcionales dinámicos, programas comunicacionales y configuraciones que le indican al sistema en todo momento cómo ejecutar estos componentes o partes.

Desde un punto de vista funcional, todos los sistemas operativos contemplan la misma estructura funcional (Windows, Linux, MacOS, ReactOS, FreeDos, etc). Igualmente, comparten esta organización los sistemas operativos de distintos componentes electrónicos (PC's, Notebooks, Palms, Teléfonos celulares, iPODs, iPADs, etc).

El Kernel está constituído integralmente por tres componentes principales:
  • Drivers: Un conjunto de utilidades que le garantizan al sistema operativo en primer término la comunicación con todos los dispositivos conectados al sistema principal Micro+Chipset+Ram. Esto se logra gracias a la incorporación de un conjunto de Controladores o Drivers. Sin estos programas comunicacionales, el sistema no podría conectar con los componentes del sistema. Justamente para garantizar esta comunicación fluída los drivers son los primeros componentes que se cargan en un sistema operativo.
  • Programas: Un conjunto de programas que permiten poner en marcha al sistema operativo para atender a las tareas que debe realizar para mantener funcionando correctamente al sistema (administración de la memoria, ejecución de tareas, almacenamiento de datos y configuraciones, etc), un conjunto de funciones que garantizen el flujo continuo y sincronizado de datos desde el corazón del sistema a los periféricos y viceversa.
  • Servicios: Un conjunto de funcionalizades que le permiten reaccionar ante un evento que suceda en el sistema para dar una respuesta dinámica y eficaz, lo que constituye la máxima potencialidad posible del sistema operativo y le permite la escalabilidad necesaria para poder aceptar diferntes configuraciones. Los servicios sólo pueden ser sostenidos gracias a la existencia de programas que se ponen a funcionar en un sistema operativo en un modo de "escucha" y que esperan la producción del evento que provocará su reacción.
Cada uno de estos componentes del Kernel puede ser controlado y visualizado por el técnico gracias a un conjunto de herramientas provistas por los mismos sistemas operativos para controlar la ejecución correcta y coordinada de cada uno.

En el caso de Windows, estas herramientas son

  • El Administrador de Servicios para ver las funcionalidades disponibles que responden a distintos eventos dentro del sistema
  • El Administrador de Programas para ver los Procesos cargados en memoria Ram que esperan por los eventos que los activarán. Recuerde el técnico que un programa que se carga en Ram recibe el nombre de PROCESO.
  • El Administrador de Dispositivos, que permite saber el estado comunicacional del sistema con el exterior, vale decir Micro+Chipser+Ram con Periféricos

El Kernel opera con un lenguaje de programación básico y primitivo, orientado principalmente a mantener contacto fluído con el bajo nivel de hardware. Esto quiere decir que está más relacionado al uso de programas preparados para interpretar señales eléctricas que a comunicarse con el alto nivel o software del usuario.

Como el Kernel tiene un tipo de comunicación básicamente binaria, por ese motivo requiere para su comunicación con el software de una interface comunicacional, que se conoce como API. La API (Applicattions Programmers Interface) es un conjunto de programas que prestan funcionalidades de "traducción" entre el software que carga el sistema operativo y el Kernel o núcleo. Es una puerta comunicacional que funciona en dos sentidos: cuando un programa necesita enviar mensajes, instrucciones u órdenes al Kernel, se lo envía a la API para que ésta verifique que las ordenes estén correctamente creadas y las traduce para que el Kernel pueda interpretarlas correctamente. Del mismo modo, el Kernel envía mensajes, respuestas y comunicaciones al software mediante la API, siguiendo el camino inverso.

API es un término acuñado por los sistemas operativos de Microsoft (Windows), pero la API existe como conepto bajo diversos nombres en todos los sistemas operativos. La capa de la API no sólo funciona como intérprete comunicacional, sino que coexisten con ella diversos sistemas de control que permanentemente monitorean la funcionalidad del sistema operativo y en casos de errores, intentan proteger la integridad del Kernel para evitar que algún problema se filtre al núcleo y provoque la inestabilidad general del Sistema Operativo.

A este nivel, cualquier error se paga caro y provoca una inestabilidad general en el sistema operativo y puede provocar un crash general que obligue a reinicializar al equipo. Por ese motivo el nivel de protección que se le de al kernel define al estabilidad o fortaleza de un sistema operativo.

Los núcleos actuales de los sistemas operativos Linux y Windows (este último basado en núcleos NT) son muy estables y fiables. La mayor parte de las veces las inestabilidades generadas en NT dependen de malas configuraciones técnicas y una administración deficiente del personal humano y no de problemas de diseño del sistema operativo.

Así como desdeel punto de vista técnico el sistema PC está compuesto de capas funcionales, un sistema operativo también requiere de la combinación de varios componentes: