Día a día, la mayoría de nosotros los mortales usamos sistemas
operativos con núcleos monolíticos, es decir, la mayoría de las
operaciones de interacción directa con el hardware radican en modo
privilegiado, es decir en modo kernel, a diferencia del modelo de
micronúcleo, donde su nombre lo dice, el núcleo es muy pequeño. En este
esquema, solamente las operaciones más básicas trabajan en modo
kernel,
mientras las demás, incluyendo la pila TCP/IP, residen en modo usuario:
Ahora bien, ¿cuál es mejor?, pues esta interminable discusión, como la
interminable de VIM vs Emacs, ya ha sido abordada y discutida por muchos
investigadores y expertos en ciencias de la computación, entre ellos,
Linus Torvalds y
Andrew S. Tanenbaum.
Sin embargo, entre los varios pros y contras, el motivo de este
artículo es para sencillamente demostrar uno de los
beneficios de un
microkernel ante un fallo de seguridad en su pila de red, la cual como
he mencionado antes, trabaja en modo usuario y por lo tanto, un fallo
grave en esta, no dejaría al sistema operativo inservible por completo (
Kernel Panic)
a diferencia de los otros con núcleo
monolítico (Linux,
Free/Net/OpenBSD, AIX, HP-UX, Solaris). Fallos famosos en núcleos
monolíticos van desde el infame
Ping de la Muerte que afectaba a sistemas Windows, hasta
encabezados IP malformados que tiran al sistema operativo más seguro del Mundo (OpenBSD).
Para dicha
demostración, es importante recalcar y observar a nivel
conceptual, que la pila de red trabaja en modo no privilegiado, y
regularmente, es posible interactuar con ella a través de IPC
(comunicación entre procesos). Como se observa en la siguiente figura,
si esta falla, las demás aplicaciones y servicios del sistema operativo
residentes en modo usuario continuarán con su operación normal sin
afectar a otras partes del núcleo:
Recientemente he estado "jugando" con
MINIX 3,
creado por Andrew S. Tanenbaum, el cual está basado en un micronúcleo y
es el sistema operativo por excelencia para fines educativos, aunque
últimamente el mismo Andrew ha apostado por el mercado de dispositivos
embebidos [3].
Contenido completo en fuente original DragonJAR