¿Cuál es la diferencia entre microkernel y kernel monolítico?

los diferencia principal entre el microkernel y el núcleo monolítico es que el Los sistemas basados ​​en microkernel tienen servicios de SO y kernel en espacios de direcciones separados, mientras que los sistemas basados ​​en kernel monolítico tienen servicios de SO y kernel en el mismo espacio de direcciones.

Microkernel y kernel monolítico son dos tipos de kernels. Kernel es el núcleo del sistema operativo. Por lo tanto, hay un área de memoria especial para almacenar el código crítico del kernel. El kernel es un componente importante ya que mantiene el correcto funcionamiento de todo el sistema. Realiza hardware y gestión de procesos, manejo de archivos y muchas otras tareas..

Áreas clave cubiertas

1. Que es el Microkernel
     - Definición, Funcionalidad
2. ¿Qué es el núcleo monolítico?
     - Definición, Funcionalidad
3. ¿Cuál es la diferencia entre microkernel y kernel monolítico?
     - Comparación de diferencias clave

Términos clave

Kernel, Microkernel, Kernel Monolítico, Sistema Operativo

Que es el Microkernel

Microkernel es un tipo de kernel que permite la personalización del sistema operativo. Se ejecuta en modo privilegiado y proporciona administración de espacio de direcciones de bajo nivel y comunicación entre procesos (IPC). Además, los servicios del sistema operativo, como el sistema de archivos, el administrador de memoria virtual y el programador de la CPU, se encuentran en la parte superior del microkernel. Cada servicio tiene su propio espacio de direcciones para hacerlos seguros. Además, las aplicaciones también tienen sus propios espacios de direcciones. Por lo tanto, existe protección entre aplicaciones, servicios de SO y kernel..

Figura 1: Arquitectura de Microkernel

Cuando la aplicación solicita los servicios del sistema operativo para un servicio, los servicios del sistema operativo se comunican entre sí para proporcionar el servicio requerido a la aplicación. Aquí, la comunicación entre procesos (IPC) ayuda a establecer esta comunicación. En general, el sistema operativo basado en microkernel proporciona un gran nivel de extensibilidad. También es posible personalizar los servicios del sistema operativo en función de los requisitos de la aplicación..

¿Qué es el núcleo monolítico?

En los sistemas basados ​​en el núcleo monolítico, cada aplicación tiene su propio espacio de direcciones. Por lo tanto, cada aplicación es segura. Además, el núcleo contiene todos los servicios del sistema operativo. Por lo tanto, las aplicaciones pueden solicitar servicios del kernel. Algunos servicios del sistema operativo son el sistema de archivos, el programador de la CPU, el acceso a la red, el administrador de memoria, etc. Sin embargo, el sistema operativo se encuentra en un espacio de direcciones separado. Por lo tanto, es seguro de las aplicaciones normales y de las que funcionan mal..

Figura 2: Arquitectura basada en el núcleo monolítico

Si una aplicación requiere un servicio, el espacio de dirección de hardware de la aplicación cambia al espacio de dirección de hardware del sistema operativo para ejecutarlo.

Diferencia entre microkernel y kernel monolítico

Definición

Un microkernel es un tipo de kernel que proporciona mecanismos como la gestión de espacio de direcciones de bajo nivel, la gestión de subprocesos y la comunicación entre procesos para implementar un sistema operativo. En contraste, un kernel monolítico es un tipo de kernel en sistemas operativos donde todo el sistema operativo funciona en el espacio del kernel. Estas definiciones explican la diferencia principal entre el núcleo micro y el núcleo monolítico..

Servicios OS

Una diferencia notable entre el kernel de microkernel y monolítico es que, en un sistema basado en microkernel, los servicios de SO y el kernel están separados. Pero, en un sistema de núcleo monolítico, el núcleo contiene los servicios del sistema operativo.

Velocidad

La velocidad es también una diferencia importante entre el microkernel y el núcleo monolítico. Un sistema de microkernel es lento, mientras que el sistema de núcleo monolítico es rápido.

Fallos

En un sistema basado en microkernel, la falla en un componente no afectará a los otros componentes. Sin embargo, en un sistema basado en kernel monolítico, la falla en un componente afectará a todo el sistema. Por lo tanto, esta es también una diferencia importante entre el microkernel y el núcleo monolítico..

Personalización

Otra diferencia entre el microkernel y el núcleo monolítico es que es más fácil agregar nuevas funcionalidades al microkernel; por lo tanto, es más personalizable. Sin embargo, es difícil agregar nuevas funcionalidades al núcleo monolítico; por lo tanto, no es personalizable.  

Magnitud

Además, el microkernel es más pequeño en tamaño mientras que el núcleo monolítico es más grande en tamaño.

Conclusión

Microkernel y kernel monolítico son dos tipos de kernels. La diferencia entre el núcleo micro y el kernel monolítico es que los sistemas basados ​​en microkernel tienen servicios de SO y kernel en espacios de direcciones separados, mientras que el sistema basado en kernel monolítico tiene servicios de SO y kernel en el mismo espacio de direcciones.

Referencia:

1. Estructura monolítica - Georgia Tech - Sistemas operativos avanzados, Udacity, 23 de febrero de 2015, disponible aquí.
2. Estructura de SO basada en Microkernel - Georgia Tech - Sistemas operativos avanzados, Udacity, 23 de febrero de 2015, disponible aquí.