Quelle est la différence entre monolithique et micro noyau?
Quelqu'un pourrait-il expliquer avec des exemples la différence entre monolithique et micro noyau? Aussi d'autres classifications du noyau?
6 réponses
Le noyau monolithique est un processus de grande taille qui s'exécute entièrement dans un seul espace d'adressage. Il s'agit d'un binaire statique fichier. Tous les services du noyau existent et s'exécutent dans l'espace d'adressage du noyau. Le noyau peut invoquer des fonctions directement. Exemples de systèmes d'exploitation monolithiques basés sur le noyau: Unix, Linux.
Dans les micro-noyaux, le noyau est décomposé en processus distincts, appelés serveurs. Certains serveurs s'exécutent dans l'espace noyau et d'autres dans l'espace utilisateur. Tous les serveurs sont séparés et exécutés différents espaces d'adresse. Les serveurs invoquent des" services " les uns des autres en envoyant des messages via IPC (Interprocess Communication). Cette séparation A l'avantage que si un serveur tombe en panne, d'autres serveurs peuvent toujours fonctionner efficacement. Exemples d'OSs basés sur microkernel: Mac OS X et Windows NT.
1 ) le noyau monolithique est beaucoup plus ancien que le Microkernel, l'idée a été conçue à la fin des années 1980.
2 ) les noyaux monolithiques sont utilisés sous Unix et Linux. Les micro-noyaux sont utilisés dans QNX, L4 et HURD. Il a été initialement utilisé dans Mach (pas Mac OS X), mais plus tard converti en un noyau hybride. Même Minix n'est pas un noyau pur car les pilotes de périphériques sont compilés dans le cadre du noyau .
3 ) les noyaux monolithiques sont plus rapides que les micro-noyaux. Première microkernel Mach était 50% plus lent que le noyau monolithique, tandis que la version ultérieure comme L4 étaient seulement 2% ou 4% plus lent que le noyau monolithique .
4 ) les noyaux Monolithiques sont généralement encombrants. Un Microkernel pur doit être de petite taille, pour tenir dans le cache L1 du processeur (microkernel de première génération).
5) dans les noyaux monolithiques, les pilotes de périphériques résident dans l'espace noyau tandis que dans le micro-noyau, les pilotes de périphériques résident dans l'utilisateur espace.
6 ) étant donné que le pilote de périphérique réside dans l'espace du noyau, il rend le noyau monolithique moins sûr que microkernel, et une défaillance du pilote peut entraîner un crash. Les micro-noyaux sont plus sûrs que le noyau monolithique, donc utilisés dans certains dispositifs militaires.
7 ) les noyaux monolithiques utilisent des signaux et des sockets pour s'assurer que L'IPC, l'approche microkernel utilise des files d'attente de messages. Les micro noyaux de 1ère génération mal implémentés IPC étaient donc lents sur le contexte commutateur.
8 ) Ajouter une nouvelle fonctionnalité à un système monolithique signifie recompiler l'ensemble du noyau, alors qu'avec les micro-noyaux, vous pouvez ajouter de nouvelles fonctionnalités ou des correctifs sans recompiler.
Noyau Monolithique
Toutes les parties d'un noyau comme le planificateur, le système de fichiers, la gestion de la mémoire, Les piles réseau, les pilotes de périphériques, etc. sont maintenus dans une unité au sein du noyau dans Noyau Monolithique
Avantages
•traitement plus Rapide
Inconvénients
* Crash Non Sécurisé * Porting Inflexibilité * Explosion de la taille du noyau
Exemples •MS-DOS, Unix, Linux
Micro noyau
Seules les parties très importantes comme IPC(Inter process Communication), le planificateur de base,la gestion de la mémoire de base, les primitives d'E/S de base, etc. sont mis dans le noyau. La Communication se fait par passage de message. D'autres sont maintenus en tant que processus serveur dans L'espace utilisateur
Avantages
* Résistant Aux Chocs, Portable, Plus Petite Taille
Inconvénients
* traitement plus lent en raison D'un Message supplémentaire Passage
Exemples * Windows NT
1.Noyau Monolithique (Monolithique Pur) :all
-
Tous les services du noyau à partir d'un seul composant
( - ) Ajout / Suppression n'est pas possible, moins / zéro flexible
(+) la Communication inter-composants est meilleure
Par exemple: - Unix traditionnel
2.Micro Noyau :few
-
Peu de services(Gestion de la mémoire ,gestion du processeur,IPC, etc.) du noyau de base,d'autres services (Gestion de fichiers, Gestion des e/s. etc.) à partir de différentes couches / composants
-
Approche Split [certains services sont en mode privilégié (noyau) et certains sont en mode normal (utilisateur)]
(+)flexible pour les changements/up-gradations
( - ) Frais généraux de communication
Par exemple: - QNX etc.
3.Noyau modulaire (monolithique modulaire) :most
-
Combinaison de noyau Micro et monolithique
Collection de Modules (les modules peuvent être --> Statique + Dynamique
Les Pilotes viennent sous la forme de Modules
Par exemple: - Linux Modern OS
Le noyau monolithique a tous les services du noyau avec la partie noyau du noyau, donc sont lourds et ont un impact négatif sur la vitesse et les performances. D'autre part, le micro noyau est léger, ce qui augmente les performances et la vitesse.
J'ai répondu à la même question sur le site wordpress.
Pour la différence entre monolithique, microkernel et exokernel sous forme de tableau, vous pouvez visiter ici
Dans le spectre des conceptions de noyau les deux extrêmes les points sont des noyaux monolithiques et des microkernels.
Le Linux (classique) le noyau par exemple est un noyau monolithique (tout comme tous les systèmes d'exploitation commerciaux à ce jour aussi - bien qu'ils puissent prétendre autrement);
En ce que son code est un
fichier C unique donnant lieu à un processus unique qui implémente tout ce qui précède
service.
Pour illustrer l'encapsulation du noyau Linux nous remarquons que
le noyau Linux n'ont même pas de accès à l'une des bibliothèques C standard.
En effet le noyau Linux ne peut pas utiliser des fonctions de bibliothèque C rudimentaires telles que
printf. Au lieu de cela, il implémente sa propre fonction d'impression (appelée impressions).
Cette isolement du noyau Linux et l'auto-confinement fournissent noyau Linux
avec son principal avantage: le noyau réside dans un seul espace d'adresse1
permettre
toutes les fonctionnalités pour communiquer de la manière la plus rapide possible sans avoir recours à
tout type de message passant.
En particulier, un noyau monolithique implémente tous les pilotes de périphériques
du système.
Ceci, toutefois, est le principal inconvénient d'un noyau monolithique:
l'introduction de tout nouveau matériel non pris en charge nécessite une réécriture du
noyau (dans les parties pertinentes), recompilation de celui-ci, et réinstaller l'ensemble
OS.
plus important encore, si un pilote de périphérique tombe en panne, tout le noyau en souffre
comme un résultat.
Cette approche non modulaire des ajouts matériels et des plantages matériels
est l'argument principal pour soutenir l'autre conception extrême approche
pour les noyaux. Un micro-noyau est en un sens un noyau minimaliste qui abrite
seul le très basique des services OS (comme la gestion des processus et le système de fichiers
gestion). Dans un micro-noyau les pilotes de périphériques se trouvent à l'extérieur du noyau
permettant l'ajout et la suppression de pilotes de périphériques pendant que le système d'exploitation est en cours d'exécution
et ne nécessitent aucune alternance du noyau.