quimica - que es kernel linux
¿Cuál es la diferencia entre un nanokernel y un exokernel? (2)
Entiendo que se supone que ambos son pequeños, pero ¿cuáles son las diferencias clave entre los dos?
Exokernel es un sistema operativo de MIT (y una clase de sus variantes) que maneja relativamente poca abstracción de hardware. En exokernel, las responsabilidades de bajo nivel de controlar el hardware (particularmente la 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 abstraer los recursos de hardware físico en algún tipo 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 usa para describir un tipo específico 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 características y manejan más abstracción de hardware . Los nanokernels son núcleos relativamente pequeños que proporcionan abstracción de hardware , pero carecen de servicios de 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 granos generalmente provienen de un lote específico de investigación que produjo un nuevo tipo de kernel, por ejemplo, el kernel desarrollado en Carnegie Mellon llamado "Mach", que fue uno de los primeros ejemplos de un "microkernel" moderno.
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.
Nota : tratar la memoria en un nivel tan bajo es innecesario para la mayoría de los desarrolladores de aplicaciones. 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.
Encontré un enlace que es realmente muy útil para diferenciar micro monolítico y exokernels. el enlace es --- http://www.scribd.com/doc/174682128/Difference-between-monolithic-microkernel-and-exokernel