Núcleo
Estructura de un núcleo de sistema operativo
Como ejemplo de núcleo de sistema operativo, en esta sección
describiremos las rutinas
internas,
estructuras de datos y primitivas de un núcleo multiprogramado para la
arquitectura i80x86. Este núcleo es el que usaremos en el laboratorio. El
funcionamiento del núcleo de
presentará en la siguiente sección.
En
informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es
un software que constituye una parte fundamental del sistema operativo, y se
define como la parte que se ejecuta en modo privilegiado (conocido también como
modo núcleo).1 Es el principal responsable de facilitar a los distintos
programas acceso seguro al hardware de la computadora o en forma básica, es el encargado
de gestionar recursos, a través de servicios de llamada al sistema. Como hay
muchos programas y el acceso al hardware es limitado, también se encarga de
decidir qué programa podrá usar un dispositivo de hardware y durante cuánto
tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente
puede ser realmente complejo, por lo que los núcleos suelen implementar una
serie de abstracciones del hardware. Esto permite esconder la complejidad, y
proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que
facilita su uso al programador.
En algunos sistemas operativos, no existe un núcleo como tal
(algo común en sistemas empotrados), debido a que en ciertas arquitecturas no
hay distintos modos de ejecución.
El enfoque micronúcleo consiste en definir una abstracción
muy simple sobre el hardware, con un conjunto de primitivas o llamadas al
sistema que implementan servicios del sistema operativo mínimos, como la gestión de hilos, el espacio de
direccionamiento y la comunicación entre procesos.
El objetivo principal es la separación de la implementación
de los servicios básicos y de la política de funcionamiento del sistema. Por
ejemplo, el proceso de bloqueo de E/S se
puede implementar con un servidor en espacio de usuario ejecutándose encima del
micronúcleo. Estos servidores de usuario, utilizados para gestionar las partes
de alto nivel del sistema, son muy modulares y simplifican la estructura y
diseño del núcleo. Si falla uno de estos servidores, no se colgará el sistema
entero, y se podrá reiniciar este módulo independientemente del resto. Sin
embargo, la existencia de diferentes módulos independientes origina retardos en
la comunicación debido a la copia de variables que se realiza en la
comunicación entre módulos.
Algunos ejemplos de micronúcleos:
- AIX
- La
familia de micronúcleos L4
- El
micronúcleo Mach, usado en GNU Hurd y
en Mac
OS X
- BeOS
- Minix
- MorphOS
- QNX
- RadiOS
- VSTa
- Hurd
Como ejemplo de núcleo de sistema operativo, en esta sección
describiremos las rutinas
internas, estructuras de datos y primitivas de un núcleo multiprogramado para la arquitectura i80x86. Este núcleo es el que usaremos en el laboratorio. El funcionamiento del núcleo de
internas, estructuras de datos y primitivas de un núcleo multiprogramado para la arquitectura i80x86. Este núcleo es el que usaremos en el laboratorio. El funcionamiento del núcleo de
presentará en la siguiente sección.
En
informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es
un software que constituye una parte fundamental del sistema operativo, y se
define como la parte que se ejecuta en modo privilegiado (conocido también como
modo núcleo).1 Es el principal responsable de facilitar a los distintos
programas acceso seguro al hardware de la computadora o en forma básica, es el encargado
de gestionar recursos, a través de servicios de llamada al sistema. Como hay
muchos programas y el acceso al hardware es limitado, también se encarga de
decidir qué programa podrá usar un dispositivo de hardware y durante cuánto
tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente
puede ser realmente complejo, por lo que los núcleos suelen implementar una
serie de abstracciones del hardware. Esto permite esconder la complejidad, y
proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que
facilita su uso al programador.
En algunos sistemas operativos, no existe un núcleo como tal
(algo común en sistemas empotrados), debido a que en ciertas arquitecturas no
hay distintos modos de ejecución.
El enfoque micronúcleo consiste en definir una abstracción
muy simple sobre el hardware, con un conjunto de primitivas o llamadas al
sistema que implementan servicios del sistema operativo mínimos, como la gestión de hilos, el espacio de
direccionamiento y la comunicación entre procesos.
El objetivo principal es la separación de la implementación
de los servicios básicos y de la política de funcionamiento del sistema. Por
ejemplo, el proceso de bloqueo de E/S se
puede implementar con un servidor en espacio de usuario ejecutándose encima del
micronúcleo. Estos servidores de usuario, utilizados para gestionar las partes
de alto nivel del sistema, son muy modulares y simplifican la estructura y
diseño del núcleo. Si falla uno de estos servidores, no se colgará el sistema
entero, y se podrá reiniciar este módulo independientemente del resto. Sin
embargo, la existencia de diferentes módulos independientes origina retardos en
la comunicación debido a la copia de variables que se realiza en la
comunicación entre módulos.
Algunos ejemplos de micronúcleos:
- AIX
- La
familia de micronúcleos L4
- El
micronúcleo Mach, usado en GNU Hurd y
en Mac
OS X
- BeOS
- Minix
- MorphOS
- QNX
- RadiOS
- VSTa
- Hurd
No hay comentarios.:
Publicar un comentario