Micronúcleo en OperaSistema de tinción: Architectura, Ventajas
⚡ Resumen inteligente
Un microkernel es un núcleo mínimo de sistema operativo que mantiene únicamente las funciones esenciales (gestión de memoria, planificación de procesos y comunicación entre procesos) en el espacio del kernel, mientras que los controladores de dispositivos, los servidores de archivos y otros servicios se ejecutan por separado en el espacio de usuario.

Antes de aprender sobre Microkernel, entendamos lo siguiente:
¿Qué es el núcleo?
El núcleo es una parte fundamental de un sistema operativo que gestiona los recursos del sistema. También actúa como puente entre el software y el hardware del ordenador. Es uno de los primeros programas que se cargan al iniciar el sistema, después del gestor de arranque. El núcleo también se encarga de proporcionar acceso seguro al hardware del equipo para diversos programas. Además, decide cuándo y durante cuánto tiempo una aplicación determinada utiliza hardware específico.
¿Qué es el micronúcleo?
Un microkernel es un software o código que contiene la cantidad mínima necesaria de funciones, datos y características para implementar un sistema operativo. Proporciona un número mínimo de mecanismos, suficiente para ejecutar las funciones más básicas del sistema. Permite la implementación de otras partes del sistema operativo, ya que no impone muchas políticas.
Los microkernels y sus entornos de usuario generalmente se implementan en el C++ or Lenguajes de programación C con un poco de montaje. Sin embargo, son posibles otros lenguajes de implementación con cierta codificación de alto nivel.
¿Qué es un núcleo monolítico?
Un núcleo monolítico ejecuta todos los servicios básicos del sistema como gestión de proceso, gestión de memoria, comunicación de E/S y manejo de interrupciones, sistema de archivos, etc., en el espacio del kernel.
En este tipo de enfoque de núcleo, todo el sistema operativo se ejecuta como un único programa en modo núcleo. El sistema operativo está escrito como una colección de procedimientos que se enlazan entre sí para formar un gran programa binario ejecutable.
Microkernel Architectura
El microkernel es la parte más importante para la correcta implementación de un sistema operativo. Como se puede observar en el diagrama a continuación, el microkernel realiza operaciones básicas como la gestión de la memoria, los mecanismos de planificación de procesos y la comunicación entre procesos.
Basado en micronúcleo Operating sistema
El microkernel es el único software que se ejecuta con privilegios. Las demás funcionalidades importantes del sistema operativo se ejecutan en modo usuario, fuera del modo kernel. Estas funcionalidades pueden ser controladores de dispositivos, aplicaciones, servidores de archivos, comunicación entre procesos, etc.
Componentes del micronúcleo
Un microkernel comprende únicamente las funcionalidades esenciales del sistema. Un componente se incluye en el microkernel solo si su exclusión interrumpiría el funcionamiento del sistema. Todos los demás componentes no esenciales deben colocarse en modo usuario.
Las funcionalidades mínimas requeridas en el microkernel son:
- Gestión de la memoria Mecanismos como los espacios de direcciones deben incluirse en el microkernel. También contiene funciones de protección de memoria.
- Los mecanismos de programación del procesador deben contener programadores de procesos y subprocesos.
- La comunicación entre procesos gestiona los servidores que ejecutan sus propios espacios de direcciones.
Diferencia entre microkernel y kernel monolítico
| Parámetros | Núcleo monolítico | Microkernel |
|---|---|---|
| Básico | Se trata de un proceso de gran tamaño que se ejecuta en un único espacio de direcciones. | Se puede dividir en procesos separados llamados servidores. |
| Code | Para escribir un núcleo monolítico, se requiere menos código. | Para escribir un microkernel, se requiere más código. |
| Seguridad | Si un servicio falla, todo el sistema colapsa en un núcleo monolítico. | Si un servicio falla, nunca afecta el funcionamiento de un microkernel. |
| Comunicación | Es un único archivo binario estático. | Los servidores se comunican a través de IPC. |
| Ejemplo | Linux, BSD, Microsoft Windows (95, 98, Yo), Solaris, OS-9, AIX, DOS, XTS-400, etc. | L4Linux, QNX, Symbian, K42, Mac OS X, Integrity, etc. |
Ventajas del micronúcleo
Estas son las ventajas y beneficios de usar un microkernel:
- La arquitectura de microkernel es pequeña y aislada, por lo que puede funcionar mejor.
- Los microkernels son seguros porque solo incluyen aquellos componentes que, de otro modo, interrumpirían el funcionamiento del sistema.
- La expansión del sistema es más accesible, por lo que se puede agregar a la aplicación del sistema sin alterar el núcleo.
- Los microkernels son modulares, y los diferentes módulos se pueden reemplazar, recargar o modificar sin siquiera tocar el núcleo.
- Menos fallas del sistema en comparación con los sistemas monolíticos.
- La interfaz del microkernel ayuda a imponer una estructura de sistema más modular.
- Se pueden añadir nuevas funciones sin necesidad de recompilar.
- El mal funcionamiento del servidor también se aísla, al igual que el mal funcionamiento de cualquier otro programa de usuario.
- El sistema de microkernel es flexible, por lo que diferentes estrategias y API implementadas por diferentes servidores pueden coexistir en el sistema.
- Una menor cantidad de código que se ejecuta en modo kernel proporciona mayor seguridad y estabilidad.
Desventajas del microkernel
Estas son las desventajas/inconvenientes de usar un microkernel:
- Proporcionar servicios en un sistema de microkernel es costoso en comparación con un sistema monolítico normal.
- Se requiere un cambio de contexto o una llamada a una función cuando los controladores se implementan como procedimientos o procesos, respectivamente.
- El rendimiento de un sistema microkernel puede ser indiferente y provocar algunos problemas.

