Pregunta

Entiendo que se supone que ambos son pequeños, pero ¿cuáles son las diferencias clave entre los dos?

¿Fue útil?

Solución

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 asignación de memoria ) a menudo quedan en manos del desarrollador. Muchos desarrolladores probablemente preferirían que el sistema operativo se responsabilice más de esas tareas de bajo nivel, porque la mayoría de los desarrolladores solo escriben aplicaciones.

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

La mayoría de los núcleos harán más para abstraer 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 hardware internamente.

El término nanokernel se usa para describir un tipo de núcleo específico . El prefijo '' pico- '' o '' nano- '', '' micro- '' generalmente indica el tamaño " " " del núcleo .. Los núcleos más grandes están más integrados con más funciones 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 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 generalmente 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 era uno de los Primeros ejemplos de un moderno " microkernel " ;.

Nota al margen: 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 desee 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 asignar una pieza de hardware al trabajo. En el caso de exokernel, esto no es necesario. Podemos programar directamente "al metal", pero también elegir vincular en un modelo de abstracción cuando lo deseemos. Es un concepto muy poderoso.

Sidenote : tratar con memoria en un nivel tan bajo es innecesario para la mayoría de los desarrolladores de aplicaciones. Por lo general, hay varias capas de sistema operativo creadas sobre un núcleo, y su aplicación se ejecutará en el nivel más alto del sistema operativo. Cuando escribe en javascript, aún está más arriba, interactuando con un modelo implementado en una aplicación que se ejecuta en un sistema operativo, etc. La memoria de direccionamiento, aunque no debe ignorarse, puede significar algo completamente diferente para un desarrollador ¿Quién está escribiendo en un nivel tan alto de abstracción?

Otros consejos

Encontré un enlace que es realmente muy útil para diferenciar micro y exokernels monolíticos. enlace es --- http://www.scribd.com/doc/174682128 / Diferencia entre monolítico, microkernel y exokernel

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top