web-dev-qa-db-fra.com

Quelle est la différence entre monolithique et micro-noyau?

Quelqu'un pourrait-il s'il vous plaît expliquer avec des exemples la différence entre monolithique et micro-noyau? Aussi d'autres classifications du noyau?

98
Renjith G

Le noyau monolithique est un processus unique et volumineux s’exécutant entièrement dans un seul espace adresse. C'est un fichier binaire statique unique. Tous les services du noyau existent et s'exécutent dans l'espace d'adressage du noyau. Le noyau peut invoquer directement des fonctions. Exemples de systèmes d’exploitation monolithiques basés sur un noyau: Unix, Linux.

Dans les micro-noyaux, le noyau est divisé en processus distincts, appelés serveurs. Certains serveurs fonctionnent dans l’espace noyau et d’autres dans l’espace utilisateur. Tous les serveurs sont séparés et exécutés dans des espaces adresse différents. Les serveurs invoquent des "services" les uns des autres en envoyant des messages via IPC (communication entre processus). Cette séparation présente l’avantage de pouvoir fonctionner efficacement si un serveur tombe en panne. Exemples de systèmes d’exploitation basés sur un micro-noyau: Mac OS X et Windows NT.

102
sariful islam

1 ) Le noyau monolithique est beaucoup plus ancien que Microkernel, l’idée a été conçue à la fin des années 80.

2 ) Les noyaux monolithiques sont utilisés sous Unix et Linux. Les micro-noyaux sont utilisés dans QNX, L4 et HURD. Initialement utilisé dans Mach (pas sous Mac OS X), il a ensuite été converti en noyau hybride. Même Minix n'est pas un noyau pur, car les pilotes de périphérique sont compilés dans le noyau.

3 ) Les noyaux monolithiques sont plus rapides que les micro-noyaux. Le premier micro-noyau Mach était 50% plus lent que le noyau monolithique, tandis que les versions ultérieures telles que L4 n'étaient que 2% ou 4% moins rapides que le noyau monolithique.

4 ) Les noyaux monolithiques sont généralement volumineux. Un micro-noyau pur doit être de petite taille pour s’inscrire dans le cache L1 du processeur (micro-noyau de première génération).

5 ) Dans les noyaux monolithiques, les pilotes de périphérique résident dans l'espace noyau tandis que dans le micro-noyau, les pilotes de périphérique résident dans l'espace utilisateur.

6 ) Etant donné que le pilote de périphérique réside dans l'espace du noyau, il rend le noyau monolithique moins sécurisé que le microkernel et une défaillance de ce pilote peut provoquer un crash. Les micro-noyaux sont plus sûrs que le noyau monolithique et sont donc utilisés dans certains dispositifs militaires.

7 ) Les noyaux monolithiques utilisent des signaux et des sockets pour assurer l'IPC, l'approche du micro-noyau utilise des files de messages. Les micro-noyaux de 1ère génération mal implémentés IPC étaient donc lents lors des changements de contexte.

8 ) Ajouter une nouvelle fonctionnalité à un système monolithique signifie recompiler tout le noyau, alors qu'avec les microkernels, vous pouvez ajouter de nouvelles fonctionnalités ou correctifs sans recompiler.

61
Rahul Bhadana

Noyau monolithique

Toutes les parties d'un noyau, telles que 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 conservées dans une unité du noyau dans Noyau monolithique

Avantages

• traitement plus rapide

Désavantages

• Crash Insecure • Inflexibilité du portage • Explosion de la taille du noyau

Exemples • MS-DOS, Unix, Linux

Micro noyau

Seules les parties très importantes telles que la communication IPC (communication interprocessus), le planificateur de base, la gestion de base de la mémoire, les primitives d'E/S de base, etc., sont intégrées au noyau. La communication se fait par passage de message. D'autres sont gérés en tant que processus serveur dans l'espace utilisateur.

Avantages

• Résistant aux chocs, portable, taille plus petite

Désavantages

• Traitement plus lent en raison de la transmission supplémentaire de messages

Exemples • Windows NT

20
user2018144

1. Noyau Monolithique (Monolithique pur): all

  • Tous les services du noyau à partir d'un seul composant

    (-) ajout/retrait impossible, moins/zéro flexible

    (+) La communication inter composant est meilleure

par exemple. : - Unix traditionnel

2. Micro-noyau: few

  • peu de services (gestion de la mémoire, gestion de la CPU, IPC, etc.) à partir du noyau principal, autres services (gestion de fichiers, gestion des E/S, etc.) à partir de couches/composants différents

  • Approche divisée [Certains services sont en mode privilégié (noyau) et d'autres en mode normal (utilisateur)]

    (+) flexible pour changements/up-gradations

    (-) frais généraux de communication

exemple: QNX etc.

3. Noyau modulaire (monolithique modulaire): most

  • Combinaison de noyau micro et monolithique

  • Collection de modules - les modules peuvent être -> Static + Dynamic

  • Les pilotes se présentent sous la forme de modules

par exemple. : - Linux moderne 

13
Naman Vaishnav

Le noyau monolithique comprend tous les services du noyau ainsi que la partie principale du noyau. Il est donc lourd et a 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
Yogesh Jilhawar

Dans le spectre des conceptions de noyau, les deux points extrêmes Sont les noyaux monolithiques et les micro-noyaux.

Le noyau Linux (Classique), par exemple, est un noyau monolithique (de même que tous les systèmes d’exploitation commerciaux à ce jour, même s’ils peuvent prétendre le contraire);

En cela, son code est un fichier C unique Donnant lieu à un processus unique qui implémente tous les services ci-dessus.
Pour illustrer l'encapsulation du noyau Linux, nous remarquons que Le noyau Linux n'a même pas accès à aucune des bibliothèques standard C . 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 print) .

Cette séparation du noyau Linux et de son autonomie confèrent au noyau Linux Son principal avantage: le noyau réside dans un seul espace adresse1 Permettant à Toutes les fonctionnalités de communiquer de la manière la plus rapide possible sans recourir à type de message passant . En particulier, un noyau monolithique implémente tous les pilotes de périphériques du système.

C’est toutefois 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 correspondantes), sa recompilation et la réinstallation complète du système d'exploitation .
Plus important encore, si un pilote de périphérique tombe en panne, tout le noyau en souffre.__en conséquence . Cette approche non modulaire des ajouts matériels et des pannes matérielles est l’argument principal en faveur de l’autre approche de conception extrême pour les noyaux. Un micro-noyau est en quelque sorte un noyau minimaliste qui héberge Uniquement les services de base des systèmes d’exploitation (tels que la gestion des processus et le système de fichiersgestion). Dans un micro-noyau, les pilotes de périphérique se trouvent en dehors du noyau Ils permettent l'ajout et la suppression de pilotes de périphériques lorsque le système d'exploitation est en cours d'exécution Ils ne nécessitent aucune alternance du noyau.

0
TheLogicGuy

Différences entre micro-noyau et noyau monolithique

Certaines des différences entre le micro-noyau et le noyau monolithique sont indiquées ci-dessous

  • Le micro-noyau est beaucoup plus petit que le noyau monolithique.
  • Le micro-noyau est facilement extensible alors que c'est assez compliqué pour le noyau monolithique.
  • L'exécution du micro-noyau est plus lente que celle du noyau monolithique.
  • L'écriture d'un micro-noyau nécessite beaucoup plus de code que le noyau monolithique.
  • Monolithique est moins sécurisé que l'architecture Micro-Kernel.
  • L'architecture monolithique a plus de performances compte tenu de l'architecture mocrokernel
  • Les exemples de micro-noyau sont QNX, Symbian, Linux L4, etc. Les exemples de noyau monolithiques sont Linux, BSD, etc.
0
Malith Ileperuma