Nanonúcleo

Nanokernel  es la arquitectura del kernel del sistema operativo de la computadora , dentro del cual un kernel extremadamente simplificado y minimalista realiza solo una tarea: procesar las interrupciones de hardware generadas por los dispositivos de la computadora. Después de procesar las interrupciones del hardware, el nanokernel, a su vez, envía información sobre los resultados del procesamiento (por ejemplo, los caracteres recibidos del teclado) al software superior utilizando el mismo mecanismo de interrupción. Además, a menudo se implementa un soporte mínimo de subprocesos: creación y cambio.

En cierto sentido, el concepto de nanokernel está cerca del concepto de HAL  - Capa de abstracción de hardware, que proporciona al software de sobrecarga mecanismos de abstracción convenientes de dispositivos específicos y formas de manejar sus interrupciones.

En la mayoría de las computadoras modernas, los nanokernels se utilizan para virtualizar el hardware de las computadoras reales o para implementar un mecanismo de hipervisor , con el objetivo de permitir que varios o muchos sistemas operativos diferentes se ejecuten simultáneamente y en paralelo en la misma computadora. Por ejemplo, VMware ESX Server implementa su propio nanokernel, que es independiente del sistema operativo y está instalado en un sistema completo. Además de este nanokernel, ejecute las utilidades administrativas y de usuario de VMware y los propios sistemas operativos, virtualizados en ESX Server.

Los nanokernels también se pueden usar para hacer que los sistemas operativos sean portátiles en diferentes hardware, o para hacer posible ejecutar un sistema operativo "antiguo" en hardware nuevo e incompatible sin reescribirlo y portarlo por completo. Por ejemplo, Apple Computer usó el nanokernel en la versión PowerPC de Mac OS Classic para traducir las interrupciones de hardware generadas por sus computadoras basadas en PowerPC en una forma que Mac OS podría "entender" y reconocer para los procesadores Motorola 680x0. Por lo tanto, el nanokernel emuló el hardware "antiguo" 680x0 para Mac OS. La alternativa sería reescribir completamente y portar el código de Mac OS a PowerPC al pasar de 680x0 a ellos. Más tarde, en la era Mac OS 8.6, el nanokernel virtualizó las capacidades multiprocesador proporcionadas por PowerPC y proporcionó compatibilidad con SMP en Mac OS. Otros ejemplos exitosos del uso de arquitecturas nanokernel incluyen Adeos nanokernel , que actúa como un módulo kernel para Linux y permite que cualquier sistema operativo en tiempo real se ejecute simultáneamente con Linux.

El nanokernel puede ser tan pequeño y primitivo que incluso los dispositivos más importantes ubicados directamente en la placa base o en la placa del controlador de un dispositivo integrado, como un temporizador o un controlador de interrupción programable , son atendidos por controladores de dispositivos especiales , y no directamente por el núcleo. Estos nanonúcleos superminimalistas a veces se denominan piconúcleos.

El término "nanokernel" a veces se usa informalmente para describir microkernels muy pequeños, simplificados y livianos , como L4 .

Literatura

Enlaces