Exonúcleo

Descripción gráfica de exonúcleo

En computación, el término exonúcleo (en inglés, exokernel) se refiere a un sistema creado con fines de investigación en el Instituto Tecnológico de Massachusetts sobre OpenBSD y otros sistemas operativos similares. Su propósito es crear una especie de capa de software para otros sistemas virtuales.

Motivación

Tradicionalmente los diseñadores de núcleos intentaban hacer invisibles los recursos de hardware a las aplicaciones requiriendo que interactúen con el hardware de alguna manera conceptual. Estos modelos incluyen sistemas de archivos para almacenamiento en disco, espacio de direcciones virtual, calendarizadores para el manejo de las tareas y sockets para las comunicaciones en red. Estas abstracciones del hardware hacían más fácil escribir programas en general, pero limitaban el rendimiento y reprimían la experimentación de nuevas abstracciones. Una aplicación orientada a la seguridad podría necesitar un sistema de archivos que no dejase datos viejos en el disco, mientras que una aplicación orientada a la fiabilidad necesitaría un sistema que almacenase esos datos para recuperación en caso de fallos.

Uno podría optar por eliminar el núcleo completamente y programar directamente para el hardware, pero entonces la máquina entera debería estar dedicada a una sola tarea. Se puede llegar a una solución de consenso: dejar al núcleo destinar los recursos físicos de la máquina (por ejemplo, bloques de disco, páginas de memoria y el tiempo de CPU) a múltiples aplicaciones, y dejar a cada programa decidir qué hacer con esos recursos. El programa podría enlazar una librería de sistema operativo (libOS) que implementa abstracciones comunes, o podría implementar sus propias abstracciones. Teóricamente un sistema basado en exonúcleo podría proveer varias libOSes (librerías de sistema operativo) así como diferentes tipos de sistema operativo podrían ejecutarse bajo el mismo exonúcleo.

Other Languages
català: Exonucli
Deutsch: Exokernel
English: Exokernel
français: Exo-noyau
한국어: 엑소커널
Nederlands: Exokernel
português: Exonúcleo
русский: Экзоядро
Türkçe: Ekzoçekirdek
中文: Exokernel