Monolítico vs Micro kernel

8

¿Cuáles son las diferencias entre un núcleo monolítico y un microkernel con respecto a la estructura y la seguridad? Mi amigo me dijo que los sistemas Linux tienen un núcleo monolítico y, por lo tanto, no son más fáciles de hackear, pero no creo que fuera realmente correcto.

Alguien por favor ilumíneme.

Prasoon Saurav
fuente
Para un poco de antecedentes históricos, puede leer el Debate de Tanenbaum-Torvalds de 1992.
Pausado hasta nuevo aviso.

Respuestas:

6

La diferencia básica es que un micro kernel (MK) es muy pequeño y solo proporciona un conjunto muy mínimo de servicios. La mayoría de lo que normalmente se consideran servicios del sistema operativo son proporcionados por procesos separados que se ejecutan fuera del núcleo y en un modo menos privilegiado. Estos procesos deben comunicarse a través de algunos de IPC, en lugar de simplemente leer / escribir a cualquier estructura de datos a la que quieran acceder.

Los MK tienden a ser bastante fáciles de portar ya que el núcleo es pequeño, el esfuerzo de portabilidad es bajo.

Dado que muchos de los servicios proporcionados se ejecutan potencialmente en el espacio del usuario en lugar del espacio del núcleo, no pueden destruir fácilmente otros procesos. Este es un plus de seguridad.

Por ejemplo, digamos que la parte de la pila de redes estaba en el espacio del usuario, y se vio comprometida, es posible que no pueda interrumpir otros procesos / tareas. Mientras que si esa misma parte de la pila de red en un kernel monolítico podría estar ejecutándose en el espacio del kernel, si se ve comprometida, podría destruir otros procesos, ya que sería un privilegio.

Jason Tan
fuente
1

Para ilustrar la charla de Jason, aquí hay una ilustración para ver la diferencia entre el núcleo microhíbrido y el monolítico:

núcleo

Archivo fuente de imagen legible en Wikipedia .

Studer
fuente