Différence entre un noyau monolithique et un micro-noyau
Le noyau est la partie principale d’un système d’exploitation. il gère les ressources du système. Le noyau est comme un pont entre l’application et le matériel de l’ordinateur. Le noyau peut être classé en deux catégories, le micro-noyau et le noyau monolithique. Le micro-noyau est celui dans lequel les services utilisateur et les services du noyau conservés dans un espace d’adressage séparé. Toutefois, dans le noyau monolithiques, les services utilisateur et les services du noyau, les deux sont conservés dans le même espace d’adressage. Nous allons voir quelques différences entre le micro-noyau et le noyau monolithique ci-dessous.
Définition de noyau monolithique
Le noyau monolithique est un processus unique et volumineux s’exécutant entièrement dans un seul espace d’adressage. 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 basés sur un noyau monolithiques : Unix, Linux.
Le noyau monolithique gère les ressources système entre l’application et le matériel. Mais contrairement au micro-noyau, les services utilisateur et les services du noyau sont implémentés sous le même espace d’adressage. Cela augmente la taille du noyau et augmente encore la taille du système d’exploitation.
Le noyau monolithique fournit la planification du processeur, la gestion de la mémoire, la gestion des fichiers et d’autres fonctions du système d’exploitation via des appels système. Comme les services utilisateur et les services du noyau se trouvent dans le même espace d’adressage, le système d’exploitation s’exécute rapidement.
Définition de micro-noyau
Dans les micro-noyaux, le noyau est divisé en processus distincts, appelés serveurs. Certains serveurs fonctionnent dans l’espace du noyau et d’autres dans l’espace utilisateur. Tous les serveurs sont séparés et exécutés dans des espaces d’adressage différents. Les serveurs invoquent des « services » les uns des autres en envoyant des messages via IPC (Interprocess Communication). Cette séparation présente l’avantage de pouvoir fonctionner efficacement en cas de défaillance d’un serveur. Exemples de systèmes d’exploitation basés sur un micro-noyau: Mac OS X et Windows NT.
Dans les micro-noyaux, les services utilisateur sont isolés des services du noyau. Ainsi, en cas d’échec d’un service utilisateur, cela n’affecte pas le service du noyau et le système d’exploitation n’est donc pas affecté. C’est l’un des avantages du micro-noyau. Le micro-noyau est facilement extensible. Si des nouveaux services doivent être ajoutés, ils sont ajoutés dans l’espace d’adressage de l’utilisateur et par conséquent, l’espace d’adressage du noyau ne nécessite aucune modification. Le micro-noyau est facilement portable, sécurisé et fiable.
Différence clé entre le noyau monolithique et le micro-noyau
- Le noyau monolithique est beaucoup plus ancien que le micro-noyau, l’idée a été conçue à la fin des années 1980.
- Les noyaux monolithiques sont utilisés sous Unix et Linux. Les micro-noyaux sont utilisés dans Mac OS X et Windows NT, L4, QNX. Initialement utilisé dans Mach, 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.
- 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% plus lentes que le noyau monolithique.
- 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).
- Dans les noyaux monolithiques, les pilotes de périphérique se trouvent dans l’espace du noyau tandis que dans le micro-noyau, les pilotes de périphérique se trouvent dans l’espace utilisateur.
- Le pilote de périphérique se trouve dans l’espace noyau, il rend le noyau monolithique moins sécurisé que le microkernel et une défaillance de ce pilote peut entraîner un crash. Les micro-noyaux sont plus sûrs que le noyau monolithique et sont donc utilisés dans certains dispositifs militaires.
- Les noyaux monolithiques utilisent des signaux et des sockets pour assurer l’IPC, l’approche micro-noyau utilise des files de messages. Les micro-noyaux de première génération ont mal implémenté l’IPC et ont donc été lents lors des changements de contexte.
- 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 correctifs sans recompiler.
Conclusion
Le micro-noyau est plus lent mais plus sûr et fiable que le noyau monolithique. Le noyau monolithique est rapide mais moins sécurisé car toute défaillance du service peut entraîner un crash du système.