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?

90
demandé sur Ankur Loriya 2010-12-27 12:52:09

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.

96
répondu sariful islam 2016-01-28 23:03:13

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.

59
répondu Rahul Bhadana 2015-10-20 11:11:03

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

20
répondu 2013-06-22 02:09:59

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

13
répondu Naman Vaishnav 2014-12-29 12:36:34

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

1
répondu Yogesh Jilhawar 2017-12-15 06:39:14

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.

0
répondu TheLogicGuy 2017-06-06 19:29:30