miércoles, 5 de diciembre de 2012


El patrón de arquitectura Microkernel se aplica a sistemas de software que deben estar habilitados para adaptarse a requerimientos cambiantes del sistema. Separa un núcleo de funcionalidad mínima de la funcionalidad extendida y de partes específicas al cliente. También sirve como un socket para conectores en estas extensiones y coordinar su colaboración.

Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte más importante del DOS es un programa con el nombre "COMMAND.COM" Este programa tiene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la administración de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos.

Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos "shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.








El microkernel se encarga de la plantificación de hilos (post anterior), no de procesos, esto hace posible tener varias tareas (multitarea), siendo así el microkernel el que planifica todo el código que corre en el sistema.

Alguna de las tareas que realiza el microkernel son:
  • Manipulación de las interrupciones en el sistema desde dispositivos físicos.
  • Manipula excepciones del procesador.
  • Proporciona soporte para la recuperación de un sistema con alguna falla de caída de energía.


La arquitectura de microkernel es complejo, sofisticado pero mas centrado en su que hacer para el SO, toda acción pasa por el microkernel, lo cual hace a un SO mas seguro que uno SO con arquitectura kernel monolítico, ya que si el que solicita hacer la acción no posee los permisos necesarios el microkernel no lo deja hacer nada.





Ventajas del Microkernel

Más fiable
  •  Un posible error de un servicio del SO queda confinado en el espacio de direcciones del proceso que lo implementa. Es extensible y personalizable.

  • Podemos cambiar un servicio del SO, cambiando el proceso que lo implementa. Podemos ejecutar programas realizados para otros distinto.

Desventajas del Microkernel

  • Por otro lado, sus principales dificultades son la complejidad en la sincronización de todos los módulos que componen el micronúcleo y su acceso a la memoria, la anulación de las ventajas de Zero Copy, la Integración con las aplicaciones. Además, los procesadores y arquitecturas modernas de hardware están optimizadas para sistemas de núcleo que pueden mapear toda la memoria.

  • Esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware, según los defensores de esta tendencia. Sus detractores le achacan, fundamentalmente, mayor complejidad en el código, menor rendimiento, o limitaciones en diversas funciones.