Micro-noyau dans OperaSystème de réglage : Architecture, Avantages
⚡ Résumé intelligent
Le micro-noyau est un noyau minimal de système d'exploitation qui ne conserve que les fonctions essentielles (gestion de la mémoire, planification des processus et communication inter-processus) dans l'espace noyau, tandis que les pilotes de périphériques, les serveurs de fichiers et les autres services s'exécutent séparément dans l'espace utilisateur.

Avant d'apprendre le micro-noyau, comprenons :
Qu'est-ce que le noyau ?
Le noyau est un composant essentiel d'un système d'exploitation qui gère les ressources système. Il sert également d'interface entre le logiciel et le matériel de l'ordinateur. C'est l'un des premiers programmes chargés au démarrage, après le chargeur d'amorçage. Le noyau est également responsable de l'accès sécurisé au matériel pour les différents programmes. Il détermine aussi quand et pendant combien de temps une application utilise des ressources matérielles spécifiques.
Qu’est-ce que le micro-noyau ?
Un micro-noyau est un logiciel ou un code contenant le minimum de fonctions, de données et de caractéristiques nécessaires à la mise en œuvre d'un système d'exploitation. Il fournit un nombre minimal de mécanismes, suffisant pour exécuter les fonctions les plus essentielles d'un système d'exploitation. Il permet l'implémentation d'autres parties du système d'exploitation car il n'impose pas de contraintes importantes.
Les micro-noyaux et leurs environnements utilisateur sont généralement implémentés dans le C++ or Langages de programmation C avec un peu d'assemblage. Cependant, d'autres langages d'implémentation sont possibles avec un codage de haut niveau.
Qu’est-ce qu’un noyau monolithique ?
Un noyau monolithique exécute tous les services système de base, comme la gestion des processus, la gestion de la mémoire, la communication d'E/S, la gestion des interruptions, le système de fichiers, etc., dans l'espace noyau.
Dans ce type d'approche noyau, le système d'exploitation entier s'exécute comme un programme unique en mode noyau. Il est conçu comme un ensemble de procédures liées entre elles pour former un volumineux programme binaire exécutable.
Micro-noyau Architecture
Le micro-noyau est l'élément essentiel au bon fonctionnement d'un système d'exploitation. Comme illustré dans le schéma ci-dessous, il assure les opérations de base telles que la gestion de la mémoire, l'ordonnancement des processus et la communication interprocessus.
Basé sur un micro-noyau Operating système
Le micro-noyau est le seul logiciel exécuté au niveau privilégié. Les autres fonctionnalités importantes du système d'exploitation sont exécutées en mode utilisateur et non en mode noyau. Il peut s'agir de pilotes de périphériques, d'applications, de serveurs de fichiers, de communications interprocessus, etc.
Composants du micronoyau
Un micro-noyau ne comprend que les fonctionnalités essentielles du système. Un composant n'est inclus dans le micro-noyau que si son exclusion perturberait le fonctionnement du système. Tous les autres composants non essentiels doivent être exécutés en mode utilisateur.
Les fonctionnalités minimales requises dans le micro-noyau sont :
- Gestion de la mémoire Des mécanismes tels que les espaces d'adressage devraient être intégrés au micro-noyau. Celui-ci contient également des fonctions de protection de la mémoire.
- Les mécanismes de planification du processeur doivent contenir des planificateurs de processus et de threads.
- La communication inter-processus gère les serveurs qui exécutent leurs propres espaces d'adressage.
Différence entre le micro-noyau et le noyau monolithique
| Paramètres | Noyau monolithique | Micro-noyau |
|---|---|---|
| Fonction Plug & Play | Il s'agit d'un processus de grande envergure s'exécutant dans un seul espace d'adressage. | Il peut être décomposé en processus distincts appelés serveurs. |
| Code | Pour écrire un noyau monolithique, moins de code est nécessaire. | Pour écrire un micro-noyau, il faut davantage de code. |
| Sécurité | Si un service plante, tout le système s’effondre en un noyau monolithique. | Si un service plante, cela n’affecte jamais le fonctionnement d’un micro-noyau. |
| Communication | Il s'agit d'un unique fichier binaire statique. | Les serveurs communiquent via IPC. |
| Exemple | Linux, BSD, Microsoft Windows (95, 98, Moi), Solaris, OS-9, AIX, DOS, XTS-400, etc. | L4Linux, QNX, Symbian, K42, Mac OS X, Integrity, etc. |
Avantages du micro-noyau
Voici les avantages de l'utilisation d'un micro-noyau :
- L'architecture à micro-noyau est petite et isolée, ce qui lui permet de mieux fonctionner.
- Les micro-noyaux sont sécurisés car ils n'incluent que les composants susceptibles de perturber le fonctionnement du système.
- L'extension du système est plus accessible, elle peut donc être ajoutée à l'application système sans perturber le noyau.
- Les micro-noyaux sont modulaires, et les différents modules peuvent être remplacés, rechargés ou modifiés sans même toucher au noyau.
- Moins de pannes de système par rapport aux systèmes monolithiques.
- L'interface micro-noyau vous aide à imposer une structure système plus modulaire.
- De nouvelles fonctionnalités peuvent être ajoutées sans recompilation.
- Le dysfonctionnement du serveur est également isolé, tout comme le dysfonctionnement de n'importe quel autre programme utilisateur.
- Le système de micro-noyau est flexible, ce qui permet la coexistence de différentes stratégies et API mises en œuvre par différents serveurs.
- La réduction de la quantité de code exécuté en mode noyau permet d'améliorer la sécurité et la stabilité.
Inconvénients du micronoyau
Voici les inconvénients liés à l'utilisation d'un micro-noyau :
- Fournir des services dans un système à micro-noyau est coûteux comparé à un système monolithique classique.
- Un changement de contexte ou un appel de fonction est nécessaire lorsque les pilotes sont implémentés respectivement sous forme de procédures ou de processus.
- Les performances d’un système à micro-noyau peuvent être indifférentes et entraîner certains problèmes.

