Micro-noyau
Un micro-noyau (appelé Microkernel par les anglophones) essaie d'exécuter la plupart des services - tels que le réseau, le système de fichiers... - en tant que services et serveurs dans l'espace utilisateur. Ainsi, le noyau s'occupe que des services de base, tels que l'allocation de mémoire (cependant, le gestionnaire de mémoire est intégré dans l'espace utilisateur), la planification et la messagerie IPC (Inter Process Communication). Par conséquent, ce concept rend le noyau très réactif (car de nombreuses fonctionnalités résident dans des processus léger et processus d'espace utilisateur préemptibles, ceci supprimant le changement de contexte dans le noyau à proprement dit) et améliore la stabilité du noyau en réduisant la quantité de code en cours d'exécution dans l'espace du noyau. Il existe également des avantages supplémentaires pour les systèmes d'exploitation prenant en charge les ordinateurs multi-processeurs (protection de réadmission plus simple et meilleure fonctionnalité désynchronisé) et les systèmes d'exploitation distribués (le code peut utiliser des services sans savoir si le fournisseur de services fonctionne sur le même système). Un inconvénient est la quantité de messagerie et de changement de contexte impliqués, ceci rendant les micro-noyaux conceptuellement plus lents que les noyaux monolithiques. Toutefois, cela ne veut pas dire qu'un micro-noyau conçu intelligemment ne pourrait pas battre un monolithique mal conçu. De plus, dans un micro-noyau, se sont la quantité quasi-absolue de logiciels pouvant fournir les mécanismes nécessaires à la mise en oeuvre d'un système d'exploitation. Ces mécanismes incluent la gestion de l'espace d'adresses de bas niveau, la gestion des processus léger et la communication inter-processus (IPC).
Voici quelques exemples de systèmes d'exploitation utilisant ce modèle de noyau :
Système d'exploitation |
---|
AmigaOS |
L4 |
Mach |
Minix |
QNX |
Remarques
- Le système d'exploitation AmigaOS est version inhabituelle du micro-noyau, car il n'y a pas de protection de mémoire, sa messagerie était aussi rapide que possible (en passant un pointeur vers la mémoire), faisant du noyau AmigaOS un des plus rapides jamais conçu. D'autre part, cette absence de protection de la mémoire signifiait également que l'architecture du micro-noyau n'apportait aucune stabilité supplémentaire.
- En termes de taille du code source, le micro-noyau a généralement tendance à être plus petits que le noyau monolithique. Le micro-noyau du système d'exploitation MINIX 3, par exemple, a environ 12 000 lignes de code.