Je comprends qu'ils sont tous deux supposés être petits, mais quelles sont les principales différences entre les deux?Quelle est la différence entre un nanokernel et un exokernel?
Répondre
exokernel est un système d'exploitation du MIT (et une classe de c'est des variantes) qui gère relativement peu abstraction matérielle. Dans exokernel, les responsabilités de bas niveau de contrôle du matériel (en particulier allocation de mémoire) sont souvent laissés dans les mains du développeur. De nombreux développeurs préféreraient probablement que le système d'exploitation prenne plus de responsabilités pour de telles tâches de bas niveau, car la plupart des développeurs écrivent simplement des applications.
Un exokernel juste alloue des ressources matérielles physiques aux programmes. Cela permet au programme d'utiliser les systèmes d'exploitation de la bibliothèque, qui sont liés pour fournir une partie de l'abstraction que l'exokernel ne fournit pas. Le développeur peut alors choisir entre des modèles d'abstraction, ou bien lancer le leur. Compte tenu de l'application, cela peut avoir de grands avantages de performance. Si vous ne savez pas ce que vous faites, vous pouvez également écrire des programmes qui vont exploser lorsqu'ils se plantent.
La plupart des noyaux feront plus de abstraites matériel physique ressources dans une sorte de modèle théorique . Un développeur s'interface avec ce modèle, qui gère les points plus fins de traiter le matériel en interne.
Le terme nanokernel est utilisé pour décrire un type de noyau spécifique. Le préfixe "pico-", ou "nano-", "micro-" indique généralement la "taille" du noyau. Les plus gros noyaux sont plus construits avec plus de fonctionnalités, et traitent plus d'abstraction matérielle. Nanokernels sont des noyaux relativement petits qui fournissent l'abstraction matérielle, mais manquent des services du système. Les micro-noyaux modernes manquent également de services système, de sorte que les termes sont devenus analogues.
Les noms des noyaux souches habituellement d'un lot spécifique de recherche qui a abouti à un nouveau type de noyau, par exemple le noyau développé à Carnegie Mellon appelé « Mach », qui a été l'un des premiers exemples d'un moderne "micro-noyau".
Sidenote: Le véritable avantage d'exokernel est le choix. La plupart du temps, beaucoup d'abstraction signifie moins de bugs catastrophiques. Dans certaines applications, vous pourriez vouloir utiliser un modèle d'abstraction différent, ou vous pourriez vouloir tout gérer vous-même. Si nous voulions abandonner l'abstraction de système d'exploitation pour un projet particulier, nous devions découper le système d'exploitation et confier un morceau de matériel au travail. Dans le cas d'Exokernel, ce n'est pas nécessaire. Nous pouvons programmer directement "au métal", mais aussi choisir de lier dans un modèle d'abstraction quand on veut. C'est un concept très puissant.
Sidenote: Le traitement de la mémoire à un niveau aussi bas n'est pas nécessaire pour la plupart des développeurs d'applications. Il y a généralement plusieurs couches de système d'exploitation construites au-dessus d'un noyau, et votre application fonctionnera au plus haut niveau du système d'exploitation. Lorsque vous écrivez en javascript, vous êtes encore plus haut, vous interfaçant avec un modèle implémenté dans une application qui fonctionne sur un système d'exploitation, etc. etc. L'adressage de la mémoire, même s'il ne doit pas être ignoré, peut signifier quelque chose de complètement différent qui écrit sur un si haut niveau d'abstraction.
J'ai trouvé un lien qui est vraiment très utile pour différencier les micro et exokernels monolithiques. le lien est --- http://www.scribd.com/doc/174682128/Difference-between-monolithic-microkernel-and-exokernel
- 1. Quelle est la différence entre un midlet et un corelet?
- 2. Quelle est la différence entre un itérateur et un générateur?
- 3. Quelle est la différence entre un assistant et un partiel?
- 4. Quelle est la différence entre nohup et un démon?
- 5. Quelle est la différence entre = et: =
- 6. Quelle est la différence entre dict() et {}?
- 7. quelle est la différence entre:.! et: r !?
- 8. Différence entre un objet et un hachage?
- 9. Quelle est la différence entre AppDomain.CurrentDomain.BaseDirectory et Application.ExecutablePath en pratique?
- 10. Quelle est la différence entre les compléments et les macros?
- 11. Quelle est la différence entre showFeedDialog et publishUserAction Facebook API?
- 12. Quelle est la différence entre while (true) et loop?
- 13. Quelle est la différence entre un objet fonction et un objet appelable?
- 14. Quelle est la différence entre un type d'URL et un schéma d'URL?
- 15. Quelle est la différence entre un fichier objet .o et un fichier bibliothèque .so?
- 16. Quelle est la différence entre un fichier et un fichier d'accès aléatoire?
- 17. Quelle est la différence entre un site Web et un répertoire virtuel
- 18. Quelle est la différence entre un thread de travail et un thread d'E/S?
- 19. Quelle est la différence entre un espace de noms et un module en F #?
- 20. Quelle est la différence entre un View XIB et un XIB vide?
- 21. Flex: Quelle est la différence entre un "composant" MXML et un "module" MXML?
- 22. Quelle est la différence entre un contrôleur de relais et un microcontrôleur?
- 23. Quelle est la différence entre EM Dash # 151; et # 8212 ;?
- 24. Quelle est la différence entre bcc32 et bcc32ide dans Borland?
- 25. Quelle est la différence entre -I et -L dans makefile?
- 26. Quelle est la différence entre $ (document) .ready (function() et (function() $
- 27. Quelle est la différence entre TAggregateField.IsNull et (TAggregateField.Value = Null)
- 28. Quelle est la différence entre le format OMF et COFF?
- 29. Quelle est la différence entre Int et Integer dans Scala?
- 30. Quelle est la différence entre XML-RPC et SOAP?
Les réponses liées à la liaison sont fortement déconseillées; veuillez résumer ce que vous avez trouvé. – SamB
Ce lien semble être mort, de toute façon ... – RandomDSdevel