2008-10-05 42 views

Respuesta

23

exonúcleo es un sistema operativo del MIT (y una clase de variantes es) que se ocupa relativamente poco de abstracción de hardware. En exokernel, las responsabilidades de bajo nivel de controlar hardware (particularmente asignación de memoria) a menudo quedan en manos del desarrollador. Muchos desarrolladores probablemente prefieran que el sistema operativo asuma más responsabilidad en tareas de bajo nivel, ya que la mayoría de los desarrolladores solo escriben aplicaciones.

Un exokernel solo asigna recursos físicos de hardware a los programas. Esto permite que el programa utilice sistemas operativos de biblioteca, que están vinculados para proporcionar parte de la abstracción que el exokernel no proporciona. El desarrollador puede elegir entre los modelos de abstracción, o rodar los suyos propios. Dada la aplicación, esto puede tener grandes beneficios de rendimiento. Si no sabe lo que está haciendo, también puede escribir programas que explotarán cuando se bloqueen.

La mayoría de los núcleos harán más para abstractas de hardware físico recursos en una especie de modelo teórico. Un desarrollador interactúa con este modelo, que maneja los puntos más finos de tratar con el hardware internamente.

El término nanokernel se utiliza para describir un específico tipo de kernel. El prefijo "pico-", o "nano-", "micro-" generalmente denota el "tamaño" del núcleo ... Los núcleos más grandes están más construidos con más funciones, y manejan más abstracción de hardware. Los nanokernels son núcleos relativamente pequeños que proporcionan extracción de hardware, pero carecen de los servicios del sistema. Los microkernels modernos también carecen de servicios de sistema, por lo que los términos se han vuelto análogos.

Los nombres de los núcleos por lo general se derivan de un lote específico de investigación que produjo un nuevo tipo de núcleo, por ejemplo, el núcleo desarrollado en Carnegie Mellon llamado "Mach", que fue uno de los primeros ejemplos de un moderno "microkernel".

Sidenote: El beneficio real de exokernel es la elección. La mayoría de las veces, mucha abstracción significa menos errores catastróficos. En algunas aplicaciones, es posible que desee utilizar un modelo de abstracción diferente, o puede que quiera manejar todo usted mismo. Si quisiéramos eliminar la abstracción del sistema operativo para un proyecto en particular, tendríamos que cortar el sistema operativo y comprometer una pieza de hardware para el trabajo. En el caso de exokernel, esto no es necesario. Podemos programar directamente "al metal", pero también optamos por vincular en un modelo de abstracción cuando lo deseemos. Es un concepto muy poderoso.

Sidenote: La mayoría de los desarrolladores de aplicaciones no necesitan ocuparse de la memoria a un nivel tan bajo. Generalmente hay varias capas de sistema operativo construidas sobre un kernel, y su aplicación se ejecutará en el nivel más alto del sistema operativo. Cuando escribes en javascript, estás más arriba aún, interactuando con un modelo implementado en una aplicación que se ejecuta en un sistema operativo, etc. El direccionamiento de la memoria, si bien no debe ignorarse, puede significar algo completamente diferente para un desarrollador quien escribe en un nivel tan alto de abstracción.

Cuestiones relacionadas