Micro-noyau dans OperaSystème de réglage : Architecture, Avantages

Avant d'apprendre MicroKernel, comprenons :

Qu'est-ce que le noyau ?

Un noyau est un élément important d'un système d'exploitation qui gère les ressources système. Il sert également de pont 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 bootloader. Le noyau est également chargé d'offrir un accès sécurisé au matériel de la machine pour divers programmes. Il décide également quand et combien de temps une certaine application utilise un matériel spécifique.

Qu’est-ce que le micro-noyau ?

Micro-noyau est un logiciel ou un code qui contient la quantité minimale requise de fonctions, de données et de fonctionnalités pour mettre en œuvre un système d'exploitation. Il fournit un nombre minimal de mécanismes, suffisant pour exécuter les fonctions les plus élémentaires d’un système d’exploitation. Il permet d'implémenter d'autres parties du système d'exploitation car il n'impose pas beaucoup de politiques.

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 ?

Monolithic Kernel exécute tous les services système de base comme la gestion des processus, Gestion de la mémoire, communication E/S et gestion des interruptions, système de fichiers, etc. dans l'espace du noyau.

Dans ce type d'approche noyau, l'ensemble du système d'exploitation s'exécute comme un seul programme en mode noyau. Le système d'exploitation est écrit sous la forme d'un ensemble de procédures liées entre elles dans un grand programme binaire exécutable.

Micro-noyau Architecture

Un micro-noyau est l'élément le plus important pour la mise en œuvre correcte d'un système d'exploitation. Vous pouvez voir dans le diagramme ci-dessous que Microkernel effectue des opérations de base telles que la mémoire, les mécanismes de planification des processus et la communication inter-processus.

Micro-noyau Architecture
Basé sur un micro-noyau Operating système

Microkernel est le seul logiciel s'exécutant au niveau privilégié. Les autres fonctionnalités importantes du système d'exploitation sont supprimées du mode noyau et exécutées en mode utilisateur. Ces fonctionnalités peuvent être des pilotes de périphériques, des applications, des serveurs de fichiers, une communication interprocessus, etc.

Composants du micronoyau

Un micro-noyau comprend uniquement les fonctionnalités de base du système. Un composant n'est inclus dans le Microkernel que si le mettre à l'extérieur interromprait la fonctionnalité du système. Tous les autres composants non essentiels doivent être mis en mode utilisateur.

Les fonctionnalités minimales requises dans le Microkernel sont :

  • Gestion de la mémoire des mécanismes tels que les espaces d'adressage doivent être inclus dans le micro-noyau. Il contient également des fonctionnalités 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
Basic Il s'agit d'un processus volumineux 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 plus 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.
C'est un seul 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, SymbianK42, Mac OS X, Integrity, etc.

Avantages du micro-noyau

Voici les avantages/avantages de l’utilisation de Microkernel

  • L'architecture du micronoyau est petite et isolée et peut donc mieux fonctionner.
  • Les micro-noyaux sont sécurisés car seuls les composants qui perturbent autrement la fonctionnalité du système sont inclus.
  • 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, modifiés sans même toucher au noyau.
  • Moins de pannes de système par rapport aux systèmes monolithiques.
  • L'interface Microkernel vous aide à appliquer une structure système plus modulaire.
  • Sans recompiler, ajoutez de nouvelles fonctionnalités
  • Le dysfonctionnement du serveur est également isolé comme le dysfonctionnement de tout autre programme utilisateur.
  • Le système Microkernel est flexible, donc différentes stratégies et API, mises en œuvre par différents serveurs, peuvent coexister dans le système.
  • Une sécurité et une stabilité accrues entraîneront une diminution de la quantité de code exécuté en mode noyau.

Inconvénient du micro-noyau

Voici les inconvénients/inconvénients de l’utilisation de Microkernel :

  • La fourniture de services dans un système de micro-noyau est coûteuse par rapport au système monolithique normal.
  • Changement de contexte ou appel de fonction nécessaire lorsque les pilotes sont respectivement implémentés en tant que procédures ou processus.
  • Les performances d’un système à micro-noyau peuvent être indifférentes et entraîner certains problèmes.

Résumé

  • Un noyau est un élément important d'un système d'exploitation qui gère les ressources système.
  • Un micro-noyau est un logiciel ou un code qui contient la quantité minimale requise de fonctions, de données et de fonctionnalités pour implémenter un système d'exploitation.
  • Dans l'approche du noyau monolithique, l'ensemble du système d'exploitation s'exécute comme un seul programme en mode noyau
  • Un micro-noyau est l'élément le plus important pour la mise en œuvre correcte d'un système d'exploitation.
  • Un micro-noyau comprend uniquement les fonctionnalités de base du système.
  • Un noyau monolithique est un processus volumineux s'exécutant dans un seul espace d'adressage, tandis que le micro-noyau peut être décomposé en processus distincts appelés serveurs.
  • L'architecture du micronoyau est petite et isolée, elle peut donc mieux fonctionner
  • La fourniture de services dans un système à micro-noyau est coûteuse par rapport au système monolithique normal