Kernel : Noyau de système d’exploitation : le centre du système d’exploitation
Quiconque travaille avec un système d’exploitation, travaille également avec un noyau sans même s’en rendre compte. En effet, le noyau contrôle l’organisation des processus et des données de chaque ordinateur en arrière-plan. Sans lui, pratiquement rien ne fonctionne.
Un noyau, également connu sous le nom de kernel en anglais, est littéralement le noyau d’un système d’exploitation et donc l’interface entre le logiciel et le matériel. Il est nécessaire en permanence et est constamment utilisé. En bref : il est le composant central d’un système d’exploitation.
Il n’est pas seulement le noyau du système d’exploitation, mais aussi un programme qui commande tous les accès au processeur et à la mémoire, qui est responsable des principaux pilotes et peut accéder directement au matériel. Un noyau est à la base de l’interaction entre le matériel et les logiciels et gère leurs ressources de la manière la plus efficace possible.
- Domaine .eu ou .fr + éditeur de site gratuit pendant 6 mois
- 1 certificat SSL Wildcard par contrat
- Boîte email de 2 Go
Qu’est-ce qu’un noyau de système d’exploitation ?
Le kernel se trouve au cœur du système d’exploitation et gère toutes les fonctions essentielles du matériel, qu’il s’agisse d’un système Linux, macOS ou Windows, d’un smartphone, un serveur, une virtualisation telle que KVM ou tout autre type d’ordinateur.
Structure du noyau
Un noyau a toujours la même structure et se compose de plusieurs couches :
- La couche la plus basse est l’interface avec le matériel (processeurs, mémoire et périphériques). Cela inclut les tâches pour le noyau, comme les contrôleurs réseau ou les contrôleurs PCI Express.
- À cela s’ajoute la gestion de la mémoire, qui distribue la mémoire vive, y compris celle des mémoires principales virtuelles.
- La couche suivante contient la gestion de l’ordonnanceur (Scheduler), qui prend en charge la gestion du temps et permet ainsi une multitâche.
- Vient ensuite la gestion des terminaux (Device Management).
- La couche supérieure est le système de fichiers. Là, les processus se voient assigner leurs zones sur la mémoire principale ou sur le disque dur.
Déroulement du processus
Un noyau accompagne et dirige tout le trajet depuis le matériel du système jusqu’au logiciel d’application. Son travail se termine là où commence l’accès des utilisateurs : dans l’interface graphique utilisateur (GUI). Le noyau est donc directement adjacent au shell (c’est-à-dire à l’interface utilisateur). Il est préférable de considérer le kernel comme un noyau et le shell comme un anneau autour de ce noyau
Qu’est-ce qu’un noyau de système d’exploitation pour un programme informatique ?
Comme moyen mnémotechnique, la similitude phonétique de kernel en anglais avec le grade militaire francophone « Colonel » est utile ici : les deux donnent des ordres ou les transmettent. Un programme envoie des « System Calls » au noyau, par exemple lorsqu’un fichier est écrit. Cet appel système est traduit par le noyau en langage machine et transmis à l’unité centrale. Le noyau contrôle l’ensemble du système de commande de l’unité centrale. Souvent, cela se passe complètement en arrière-plan sans que les utilisateurs s’en aperçoivent.
Quelles sont les tâches d’un noyau de système d’exploitation ?
La principale exigence du noyau est le traitement parallèle de différentes tâches, le multitâche. À cet égard, il faut, d’une part, respecter des limites de temps critiques et, d’autre part, laisser un noyau ouvert à de nouvelles applications et extensions.
La règle ne peut fonctionner qu’avec des exceptions dans un système aussi complet que le système d’exploitation. C’est pourquoi le noyau n’est utilisé que comme intermédiaire pour les logiciels systèmes, les bibliothèques et les logiciels d’application. L’interface graphique d’un système d’exploitation est complètement indépendante du noyau, même sous Linux.
Pour les systèmes multi-utilisateurs, le noyau surveille également les droits d’accès aux fichiers et aux composants matériels. Ceux-ci sont actuellement affichés par le gestionnaire de tâches. Lorsqu’un processus est terminé par l’utilisateur, le gestionnaire de tâches donne au noyau l’instruction d’arrêter ce processus et de libérer ainsi l’espace mémoire alloué.
Lorsqu’un ordinateur démarre, le noyau est se suite chargé dans la mémoire vive après le démarrage. Cela se passe dans une zone protégée, le bootloader, pour que le noyau ne puisse pas être modifié ou effacé en tant que programme.
Ensuite, le noyau initialise les appareils connectés et lance les premiers processus. Les services système sont chargés, d’autres processus sont lancés ou arrêtés, des programmes d’application et l’attribution d’emplacements mémoire sont lancés.
Comment fonctionne un noyau ?
La question du fonctionnement s’explique avec une autre question : qu’est-ce que n’est pas un noyau ? Le noyau n’est pas un cœur de processeur, mais le noyau du système d’exploitation. Un noyau n’est pas non plus une interface de programmation d’application ou un Framework.
Au lieu de cela, les systèmes d’exploitation multi-noyau peuvent utiliser différents noyaux d’un processeur multi-noyau comme un réseau de processeurs indépendants. Comment cela fonctionne-t-il ? Grâce à la structure particulière du noyau, qui se compose d’une série de composants différents :
- Sa couche inférieure étant proche de la machine, elle peut communiquer directement avec le matériel, le processeur et la mémoire. Le long des cinq couches, les fonctions du noyau diffèrent, de la gestion de processus au gestionnaire d’appareils. La couche supérieure, en revanche, n’a pas accès à la machine, mais crée la transition vers le logiciel.
- Les applications fonctionnent sur le système d’exploitation séparément du noyau et n’utilisent que ses fonctions. Sans le noyau, la communication entre le programme et le matériel ne serait pas possible.
- Plusieurs processus peuvent se dérouler en même temps via des noyaux multitâches. En principe, un seul processus peut être traité par un processeur, sauf s’il existe un système à noyaux multiples. Le changement rapide de processus, qui ressemble plutôt à du multitâche, est réglé par le planificateur.
On peut en déduire les quatre fonctions du noyau :
- Gestion de la mémoire : règle la quantité de mémoire vive utilisée et l’endroit où elle est utilisée.
- Gestion des processus : détermine quels processus le processeur peut utiliser, quand et pendant combien de temps.
- Pilote de périphérique : intermédiaire entre le matériel et les processus.
- Appel au système et sécurité : reçoit des demandes de service des processus.
Les fonctions d’un noyau, lorsqu’il est correctement implémenté, restent invisibles pour les utilisateurs. Il travaille dans son propre monde, l’espace du noyau. Les fichiers, les programmes, les jeux, les navigateurs, bref, tout ce que l’utilisateur voit, se passe dans l’espace utilisateur. L’interaction des deux mondes passe par une interface d’appel système, ou syscall en anglais.
Le noyau du système d’exploitation
Pour comprendre comment le noyau fonctionne dans le système d’exploitation, il est préférable de considérer qu’un ordinateur est divisé en trois parties :
- Matériel : base du système comprenant la mémoire de travail, le processeur et les dispositifs d’entrée et de sortie. L’unité centrale effectue des opérations de lecture, d’écriture et de calcul pour la mémoire.
- Kernel : noyau d’un système d’exploitation. Indique à l’unité centrale ce qu’elle doit faire.
- Processus utilisateurs : tous les processus en cours gérés par le noyau. Le noyau permet la communication entre les processus et les serveurs, également connus sous le nom de communication inter-processus (IPC).
Quels types de noyaux existe-t-il ?
Un type de noyau a déjà été décrit dans cet article : si plusieurs processus se déroulent en même temps sur un noyau, il existe ce que l’on appelle des noyaux multitâches. En complétant une gestion d’accès, on en fait un système multiutilisateur sur lequel plusieurs utilisateurs peuvent travailler simultanément. L’authentification est effectuée par le noyau qui peut attribuer ou séparer des processus appelés.
Qu’est-ce qu’un noyau dans un système open source ?
Linux possède de nombreuses archives sur ses noyaux. Apple a déjà fourni les types de noyaux de tous ses systèmes d’exploitation sous forme Open Source. Microsoft utilise également un noyau Linux pour le sous-système Windows pour Linux.
En ce qui concerne les différents types de noyaux, on peut rapidement perdre la vue d’ensemble : les systèmes Linux et les appareils Android utilisent un noyau Linux, Windows utilise le noyau NT, sur lequel plusieurs sous-systèmes sont placés, tandis qu’Apple utilise un noyau XNU.
Les trois types de noyaux
Il existe différents types de noyaux pour les différents systèmes d’exploitation et terminaux. En ce qui concerne leurs caractéristiques, on peut les subdiviser en trois groupes :
- Noyau monolithique : un grand noyau pour toutes les tâches. Il est seul responsable de la gestion de la mémoire et des processus, ainsi que de la communication entre les processus, et offre des fonctions de support du pilote et du matériel. Les systèmes d’exploitation tels que Linux, OS X et Windows reposent sur le monolithe.
- Micro-noyaux : le micro-noyau est volontairement de petite taille afin de ne pas endommager l’ensemble du système d’exploitation en cas de défaillance. Pour qu’il puisse néanmoins remplir les mêmes fonctions qu’un noyau de grande taille, il est divisé en plusieurs modules. Seul Mac OS X peut servir d’exemple d’application, car il n’existe pas encore de système d’exploitation à micro-noyaux.
- Noyau hybride : le mélange de monolithe et de micro-noyau est appelé noyau hybride, le grand noyau étant plus compact et modulable. D’autres portions de noyau peuvent être ajoutées dynamiquement, comme c’est déjà le cas dans Linux et OS X.