Entiendo que se supone que ambos son pequeños, pero ¿cuáles son las diferencias clave entre los dos?¿Cuál es la diferencia entre un nanokernel y un exokernel?
Respuesta
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.
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
- 1. ¿Cuál es la diferencia entre un predicado y un funcionador?
- 2. ¿Cuál es la diferencia entre un método y un selector?
- 3. Cuál es la diferencia entre un subproceso y un controlador
- 4. ¿Cuál es la diferencia entre un controlador y un servicio?
- 5. ¿Cuál es la diferencia entre un lenguaje y un marco?
- 6. ¿Cuál es la diferencia entre un ayudante y un parcial?
- 7. ¿Cuál es la diferencia entre un árbol y un directorio?
- 8. ¿Cuál es la diferencia entre un algoritmo y un método
- 9. ¿Cuál es la diferencia entre un HashMap y un TreeMap?
- 10. ¿Cuál es la diferencia entre un vector y un vértice?
- 11. ¿Cuál es la diferencia entre un REPL y un intérprete?
- 12. ¿Cuál es la diferencia entre un IORef y un MVar?
- 13. ¿Cuál es la diferencia entre un JavaBean y un POJO?
- 14. ¿Cuál es la diferencia entre un "nonce" y un "GUID"?
- 15. ¿Cuál es la diferencia entre @ y @@ en un módulo?
- 16. ¿Cuál es la diferencia entre un hilo y una fibra?
- 17. ¿Cuál es la diferencia entre un algoritmo y una función?
- 18. ¿Cuál es la diferencia entre una matriz y un objeto?
- 19. ¿Cuál es la diferencia entre una mónada y un cierre?
- 20. ¿Cuál es la diferencia entre nohup y un daemon?
- 21. ¿Cuál es la diferencia entre una instancia y un objeto?
- 22. ¿Cuál es la diferencia entre un tema y una plantilla?
- 23. ¿Cuál es la diferencia entre un RoutedCommand y una RoutedUICommand?
- 24. ¿Cuál es la diferencia entre GenericServlet, HttpServlet y un Servlet?
- 25. ¿cuál es la diferencia entre -C y gzipping un mysqldump?
- 26. ¿Cuál es la diferencia entre un método y una función?
- 27. ¿Cuál es la diferencia entre. y # en un archivo css?
- 28. ¿Cuál es la diferencia entre separar un Fragmento y eliminarlo?
- 29. ¿Cuál es la diferencia entre CharSequence [] y un String []?
- 30. ¿Cuál es la diferencia entre una heurística y un algoritmo?
Se desaconsejan las respuestas con solo el enlace; por favor resuma lo que ha encontrado. – SamB
Este enlace parece estar muerto, de todos modos ... – RandomDSdevel