Microkernel en el sistema operativo: Architectura, Ventajas

Antes de aprender MicroKernel, comprendamos:

¿Qué es el núcleo?

Un kernel es una parte importante de un sistema operativo que administra los recursos del sistema. También actúa como puente entre el software y el hardware de la computadora. Es uno de los primeros programas que se carga al inicio después del gestor de arranque. El Kernel también es responsable de ofrecer acceso seguro al hardware de la máquina para varios programas. También decide cuándo y durante cuánto tiempo una determinada aplicación utiliza hardware específico.

¿Qué es el micronúcleo?

Microkernel es un software o código que contiene la cantidad mínima requerida de funciones, datos y características para implementar un sistema operativo. Proporciona una cantidad mínima de mecanismos, lo que es suficiente para ejecutar las funciones más básicas de un sistema operativo. Permite implementar otras partes del sistema operativo ya que no impone muchas políticas.

Los microkernels y sus entornos de usuario generalmente se implementan en C++ o 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?

Monolithic Kernel 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 Kernel, todo el sistema operativo se ejecuta como un único programa en modo kernel. El sistema operativo está escrito como una colección de procedimientos que están vinculados entre sí en un gran programa binario ejecutable.

Microkernel Architectura

Un Microkernel es la parte más importante para la correcta implementación de un sistema operativo. Puede ver en el diagrama a continuación que Microkernel cumple con operaciones básicas como memoria, mecanismos de programación de procesos y comunicación entre procesos.

Microkernel Architectura
Sistema operativo basado en microkernel

Microkernel es el único software que se ejecuta en el nivel privilegiado. Las otras funcionalidades importantes del sistema operativo se eliminan del modo kernel y se ejecutan en el modo usuario. Estas funcionalidades pueden ser controladores de dispositivos, aplicaciones, servidores de archivos, comunicación entre procesos, etc.

Componentes del micronúcleo

Un microkernel comprende sólo las funcionalidades principales del sistema. Un componente se incluye en el Microkernel sólo si su colocación fuera interrumpiría la funcionalidad del sistema. Todos los demás componentes no esenciales deben ponerse en modo de usuario.

Las funcionalidades mínimas requeridas en el Microkernel son:

  • Gestión de la memoria Mecanismos como 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
Basic Es un gran proceso que se ejecuta en un único espacio de direcciones. Se puede dividir en procesos separados llamados servidores.
Código 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, SymbianK42, Mac OS X, integridad, etc.

Ventajas del micronúcleo

Aquí están las ventajas y beneficios de usar Microkernel

  • Microkernel archiLa tecnología es pequeña y aislada, por lo que puede funcionar mejor.
  • Los micronúcleos son seguros porque solo se incluyen aquellos componentes que interrumpen la funcionalidad del sistema.wise.
  • La expansión del sistema es más accesible, por lo que se puede agregar a la aplicación del sistema sin alterar el Kernel.
  • Los microkernels son modulares y los diferentes módulos se pueden reemplazar, recargar y modificar sin siquiera tocar el Kernel.
  • Menos fallas del sistema en comparación con los sistemas monolíticos.
  • La interfaz Microkernel le ayuda a imponer una estructura de sistema más modular.
  • Sin recompilar, agregue nuevas funciones
  • El mal funcionamiento del servidor también se aísla del mal funcionamiento de cualquier otro programa de usuario.
  • El sistema Microkernel es flexible, por lo que diferentes estrategias y API, implementadas por diferentes servidores, pueden coexistir en el sistema.
  • Una mayor seguridad y estabilidad dará como resultado una menor cantidad de código que se ejecuta en modo kernel.

Desventaja de Microkernel

A continuación, se muestran los inconvenientes/desventajas de usar Microkernel:

  • Proporcionar servicios en un sistema de micronúcleo es costoso en comparación con el sistema monolítico normal.
  • Se necesita un cambio de contexto o una llamada de 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.

Resumen

  • Un kernel es una parte importante de un sistema operativo que administra los recursos del sistema.
  • Un microkernel es un software o código que contiene la cantidad mínima requerida de funciones, datos y características para implementar un sistema operativo.
  • En el enfoque Monolithic Kernel, todo el sistema operativo se ejecuta como un único programa en modo kernel.
  • Un Microkernel es la parte más importante para la correcta implementación de un sistema operativo.
  • Un microkernel comprende sólo las funcionalidades principales del sistema.
  • Un kernel monolítico es un proceso grande que se ejecuta en un único espacio de direcciones, mientras que un Microkernel se puede dividir en procesos separados llamados servidores.
  • Microkernel archiLa tecnología es pequeña y aislada, por lo que puede funcionar mejor.
  • Proporcionar servicios en un sistema microkernel es costoso en comparación con el sistema monolítico normal.