Qu’est-ce que le noyau d’un OS (Kernel)

malekalmorte

Création :

24 mars 2023

Modification :

Chaque système d’exploitation, qu’il s’agisse de Windows, de Mac, de Linux ou d’Android, possède un programme central appelé noyau, qui joue le rôle de « patron » pour l’ensemble du système.
Le noyau est parfois appelé superviseur, cœur ou interne du système d’exploitation.
Il n’est rien d’autre qu’un programme informatique qui contrôle tout le reste. Tout ce qui se passe sur l’ordinateur passe par lui.

Dans ce tutoriel, nous verrons ce qu’est un noyau dans un système d’exploitation, quel est son rôle et quels sont les différents types de noyaux.

Qu'est-ce que le noyau d'un OS (Kernel)

Qu’est-ce que le noyau d’un OS (Kernel) et son rôle

Le noyau (ou kernel) est un élément fondamental de tout système d’exploitation.
C’est le cœur du système d’exploitation au niveau le plus bas et le plus élémentaire.
Il remplit des fonctions telles que la communication avec les périphériques matériels, la gestion des processus, la gestion des fichiers et bien d’autres tâches. Les différents systèmes d’exploitation ont des noyaux différents selon le type de système d’exploitation. En outre, les périphériques Windows et Linux ont des noyaux différents.

Le BIOS ou le chargeur de démarrage (BootLoader) a pour tâche de charger les fichiers du noyau du système d’exploitation présent dans le répertoire de démarrage de l’espace disque où se trouve Windows/Linux.

Ensuite, le kernel mets en marche le matériel de l’ordinateur via les drivers, gère la mémoire du système, ordonne les processus et mets à disposition toute les fonctions pour que les applications fonctionnent.

Comment fonctionne le noyau (Kernel) d’un OS

Quel est le rôle du noyau

Le BIOS ou le chargeur de démarrage (BootLoader) a pour tâche de charger les fichiers du noyau du système d’exploitation présent dans le répertoire de démarrage de l’espace disque où se trouve Windows/Linux.
Ensuite, le noyau Linux initialise les composants du système d’exploitation

Une des principales fonctions du noyau d’un OS est d’effectuer l’interaction entre les programmes et l’utilisateur et le matériel du PC.
Le matériel du PC fonctionne en général à partir de pilotes (drivers) qu’un fabriquant peut fournir.

Qu'est-ce que le noyau d'un OS et son rôle

La plupart du code du système d’exploitation s’exécute en mode noyau.
Le mode processeur passe du mode utilisateur au mode noyau chaque fois qu’un thread d’application appelle une fonction de l’API Windows qui appelle à son tour une fonction système interne qui doit s’exécuter en mode noyau. Le mode processeur retourne au mode utilisateur avant que le contrôle ne retourne à la fonction afin que les données système soient protégées.

Quelle est la structure du noyau d’un système d’exploitation

Les composants typiques d’un noyau sont

  • les gestionnaires d’interruption pour répondre aux demandes d’interruption,
  • un planificateur pour partager le temps processeur entre plusieurs processus,
  • un système de gestion de la mémoire pour gérer les espaces d’adressage des processus,
  • et des services système tels que la mise en réseau et la communication interprocessus

Sur les systèmes modernes dotés d’unités de gestion de la mémoire protégées, le noyau réside généralement dans un état de système élevé par rapport aux applications utilisateur normales.
Il peut se nommer Kernel-Mode.
Il dispose notamment d’un espace mémoire protégé et d’un accès complet au matériel. Cet état du système et cet espace mémoire sont collectivement appelés espace-noyau.

À l’inverse, les applications utilisateur s’exécutent dans l’espace utilisateur. Elles voient un sous-ensemble des ressources disponibles de la machine et sont incapables d’exécuter certaines fonctions du système, d’accéder directement au matériel ou de se comporter de manière incorrecte (sans conséquences, telles que leur mort, de toute façon).
Les applications exécutées sur le système communiquent avec le noyau par l’intermédiaire d’appels système.
Une application appelle généralement des fonctions dans une bibliothèque de fonctions fournit par le noyau et l’OS, à leur tour, s’appuient sur l’interface d’appel système pour demander au noyau d’effectuer des tâches en leur nom. Certains appels de bibliothèque offrent de nombreuses fonctionnalités qui ne sont pas disponibles dans l’appel système et, par conséquent, l’appel au noyau n’est qu’une étape d’une fonction par ailleurs importante.

De ce fait, une application qui fonctionne en user mode ne peut pas faire crasher le noyau de l’OS et donc le système d’exploitation.

Quelle est la structure du noyau d'un système d'exploitation

Cette architecture en anneau de protection (ring) est l’un des niveaux de privilèges imposés par l’architecture d’un processeur.
Par exemple, le noyau Linux fonctionne avec différences espaces et couches protégées.
On nomme ces dernières anneau ou Ring et vont de 0 à 3 :

  • Kernel internal : est l’emplacement où le code du noyau est stocké et s’exécute sous.
    • Ring 0 (mode noyau) : L’anneau 0 (espace noyau) est l’anneau le plus privilégié et a accès à toutes les instructions de la machine
    • Ring 1 et 2 peut être utilisé par les hyperviseurs ou pilotes de machine virtuelle,
  • Kernel user space (Ring 3) : qui est un ensemble d’emplacements où s’exécutent les processus utilisateur normaux (c’est-à-dire tout autre que le noyau). Le rôle du noyau est de gérer les applications qui s’exécutent dans cet espace
Les anneaux de protection (ring) du noyau d'un OS
Source : Wikipedia

Les interruptions

Le noyau gère également le matériel du système. Presque toutes les architectures modernes actuels proposent le concept d’interruptions. Lorsque le matériel souhaite communiquer avec le système, il émet une interruption qui interrompt le noyau de manière asynchrone. Les interruptions sont identifiées par un numéro.
Le noyau utilise ce numéro pour exécuter un gestionnaire d’interruption spécifique afin de traiter l’interruption et d’y répondre.
Par exemple, lorsque vous tapez, le contrôleur de clavier émet une interruption pour indiquer au système que de nouvelles données se trouvent dans la mémoire tampon du clavier. Le noyau note le numéro de l’interruption émise et exécute le gestionnaire d’interruption approprié. Le gestionnaire d’interruption traite les données du clavier et indique au contrôleur de clavier qu’il est prêt à recevoir d’autres données.

Pour assurer la synchronisation, le noyau peut généralement désactiver les interruptions, qu’il s’agisse de toutes les interruptions ou d’un numéro d’interruption spécifique. Dans de nombreux systèmes d’exploitation, les gestionnaires d’interruption ne s’exécutent pas dans le contexte d’un processus. Ils s’exécutent plutôt dans un contexte d’interruption spécial qui n’est associé à aucun processus.
Ce contexte spécial existe uniquement pour permettre à un gestionnaire d’interruption de répondre rapidement à une interruption, puis de quitter le système.

Quels sont les types de noyau

Le noyau peut également communiquer avec le matériel sur une « ligne sécurisée ». Les entreprises peuvent donc développer un noyau capable de communiquer avec leur matériel par l’intermédiaire d’un ensemble de boutons. Prenons l’exemple d’une machine à laver. En fonction des boutons que vous actionnez et de l’heure que vous réglez, un noyau de base devrait suffire. Cela dit, les noyaux eux-mêmes se compliquent avec le temps, ce qui donne lieu à des types de noyaux.

  • Noyau monolithique : le système d’exploitation et le noyau s’exécutent dans le même espace mémoire. Il permet un accès plus rapide, mais en cas de bogue dans le pilote d’un périphérique, le système entier tombe en panne. Cela convient lorsque la sécurité n’est pas une préoccupation majeure
  • Micro-noyau : Il s’agit d’une version simplifiée du noyau monolithique, dans laquelle le noyau lui-même peut effectuer la plupart des tâches, et il n’est pas nécessaire d’avoir une interface graphique supplémentaire. Il doit être utilisé dans les cas où la sécurité et le blocage du système ne sont pas ou ne seront pas possibles
  • Noyau hybride : Ce noyau est celui que nous voyons le plus souvent. Windows, macOS d’Apple. Il s’agit d’un mélange de noyau monolithique et de micro-noyau. Il déplace les pilotes mais maintient les services système à l’intérieur du noyau – de la même manière que les pilotes sont chargés lorsque Windows démarre le processus d’amorçage
  • Nano Kernel : Si vous avez besoin d’un noyau, mais que la majorité de ses fonctions sont placées à l’extérieur, c’est ce qu’il vous faut
  • Exo Kernel : Ce noyau n’offre qu’une protection des processus et une gestion des ressources. Cependant, il est surtout utilisé pour tester un projet interne et passer à un meilleur type de noyau

Le noyau Linux et Windows

Le site fournit deux guides complets sur le fonctionnement et le rôle du noyau Linux et le noyau Windows :

Noyau WindowsNoyau Linux
Aucun accès au code sourceOpen source : accès total au code source
Architecture HybrideArchitecture Monolithique
Utilise des Access Control List (ACL) pour le contrôle d’accès au fichierUtilise les permissions Unix et POSIX ACL pour l’accès au fichier
Inclut une pile d’interface graphique dans le noyauInclut une pile d’interface graphique dans l’espace utilisateur
Supporte de multiples utilisateurs et sessions.
Mais restrictions sur l’édition de Windows
Support 100% un environnement multi-utilisateur
Maintient un registre avec la configuration du systèmeMaintient une configuration par des fichiers de configuration
Possède différents mécanismes pour différents périphériquesChaque périphérique est un fichier
Les différences entre le noyau Linux et le noyau Windows

A propros de malekalmorte

malekal-site-logo-150

Passionné par l'informatique depuis très jeune, j'aide les internautes sur les forums depuis 2005 pour résoudre leurs tracas informatiques.
Je vous propose par la même occasion ce site avec de nombreux tutoriels pour vous aider aussi à résoudre de manière autonome les problèmes informatiques du quotidien.