Quiconque travaille avec un système d’ex­ploi­ta­tion, travaille également avec un noyau sans même s’en rendre compte. En effet, le noyau contrôle l’or­ga­ni­sa­tion des processus et des données de chaque or­di­na­teur en arrière-plan. Sans lui, pra­ti­que­ment rien ne fonc­tionne.

Un noyau, également connu sous le nom de kernel en anglais, est lit­té­ra­le­ment le noyau d’un système d’ex­ploi­ta­tion et donc l’interface entre le logiciel et le matériel. Il est né­ces­saire en per­ma­nence et est cons­tam­ment utilisé. En bref : il est le composant central d’un système d’ex­ploi­ta­tion.

Il n’est pas seulement le noyau du système d’ex­ploi­ta­tion, mais aussi un programme qui commande tous les accès au pro­ces­seur et à la mémoire, qui est res­pon­sable des prin­ci­paux pilotes et peut accéder di­rec­te­ment au matériel. Un noyau est à la base de l’in­te­rac­tion entre le matériel et les logiciels et gère leurs res­sources de la manière la plus efficace possible.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Qu’est-ce qu’un noyau de système d’ex­ploi­ta­tion ?

Le kernel se trouve au cœur du système d’ex­ploi­ta­tion et gère toutes les fonctions es­sen­tielles du matériel, qu’il s’agisse d’un système Linux, macOS ou Windows, d’un smart­phone, un serveur, une vir­tua­li­sa­tion telle que KVM ou tout autre type d’or­di­na­teur.

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 (pro­ces­seurs, mémoire et pé­ri­phé­riques). Cela inclut les tâches pour le noyau, comme les con­trô­leurs réseau ou les con­trô­leurs PCI Express.
  • À cela s’ajoute la gestion de la mémoire, qui distribue la mémoire vive, y compris celle des mémoires prin­ci­pales vir­tuelles.
  • La couche suivante contient la gestion de l’or­don­nan­ceur (Scheduler), qui prend en charge la gestion du temps et permet ainsi une mul­ti­tâche.
  • Vient ensuite la gestion des terminaux (Device Ma­na­ge­ment).
  • La couche su­pé­rieure est le système de fichiers. Là, les processus se voient assigner leurs zones sur la mémoire prin­ci­pale ou sur le disque dur.

Dé­rou­le­ment du processus

Un noyau ac­com­pagne et dirige tout le trajet depuis le matériel du système jusqu’au logiciel d’ap­pli­ca­tion. Son travail se termine là où commence l’accès des uti­li­sa­teurs : dans l’interface graphique uti­li­sa­teur (GUI). Le noyau est donc di­rec­te­ment adjacent au shell (c’est-à-dire à l’interface uti­li­sa­teur). Il est pré­fé­rable de con­si­dé­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’ex­ploi­ta­tion pour un programme in­for­ma­tique ?

Comme moyen mné­mo­tech­nique, la si­mi­li­tude pho­né­tique de kernel en anglais avec le grade militaire fran­co­phone « Colonel » est utile ici : les deux donnent des ordres ou les trans­met­tent. 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 com­plè­te­ment en arrière-plan sans que les uti­li­sa­teurs s’en aper­çoi­vent.

Quelles sont les tâches d’un noyau de système d’ex­ploi­ta­tion ?

La prin­ci­pale exigence du noyau est le trai­te­ment parallèle de dif­fé­rentes tâches, le mul­ti­tâche. À cet égard, il faut, d’une part, respecter des limites de temps critiques et, d’autre part, laisser un noyau ouvert à de nouvelles ap­pli­ca­tions et ex­ten­sions.

La règle ne peut fonc­tion­ner qu’avec des ex­cep­tions dans un système aussi complet que le système d’ex­ploi­ta­tion. C’est pourquoi le noyau n’est utilisé que comme in­ter­mé­diaire pour les logiciels systèmes, les bi­blio­thèques et les logiciels d’ap­pli­ca­tion. L’interface graphique d’un système d’ex­ploi­ta­tion est com­plè­te­ment in­dé­pen­dante du noyau, même sous Linux.

Note

Pour les systèmes multi-uti­li­sa­teurs, le noyau surveille également les droits d’accès aux fichiers et aux com­po­sants matériels. Ceux-ci sont ac­tuel­le­ment affichés par le ges­tion­naire de tâches. Lorsqu’un processus est terminé par l’uti­li­sa­teur, le ges­tion­naire de tâches donne au noyau l’ins­truc­tion d’arrêter ce processus et de libérer ainsi l’espace mémoire alloué.

Lorsqu’un or­di­na­teur 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 boot­loa­der, pour que le noyau ne puisse pas être modifié ou effacé en tant que programme.

Ensuite, le noyau ini­tia­lise 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 pro­grammes d’ap­pli­ca­tion et l’at­tri­bu­tion d’em­pla­ce­ments mémoire sont lancés.

Comment fonc­tionne un noyau ?

La question du fonc­tion­ne­ment s’explique avec une autre question : qu’est-ce que n’est pas un noyau ? Le noyau n’est pas un cœur de pro­ces­seur, mais le noyau du système d’ex­ploi­ta­tion. Un noyau n’est pas non plus une interface de pro­gram­ma­tion d’ap­pli­ca­tion ou un Framework.

Au lieu de cela, les systèmes d’ex­ploi­ta­tion multi-noyau peuvent utiliser dif­fé­rents noyaux d’un pro­ces­seur multi-noyau comme un réseau de pro­ces­seurs in­dé­pen­dants. Comment cela fonc­tionne-t-il ? Grâce à la structure par­ti­cu­lière du noyau, qui se compose d’une série de com­po­sants dif­fé­rents :

  • Sa couche in­fé­rieure étant proche de la machine, elle peut com­mu­ni­quer di­rec­te­ment avec le matériel, le pro­ces­seur et la mémoire. Le long des cinq couches, les fonctions du noyau diffèrent, de la gestion de processus au ges­tion­naire d’appareils. La couche su­pé­rieure, en revanche, n’a pas accès à la machine, mais crée la tran­si­tion vers le logiciel.
  • Les ap­pli­ca­tions fonc­tion­nent sur le système d’ex­ploi­ta­tion sé­pa­ré­ment du noyau et n’utilisent que ses fonctions. Sans le noyau, la com­mu­ni­ca­tion entre le programme et le matériel ne serait pas possible.
  • Plusieurs processus peuvent se dérouler en même temps via des noyaux mul­ti­tâches. En principe, un seul processus peut être traité par un pro­ces­seur, sauf s’il existe un système à noyaux multiples. Le chan­ge­ment rapide de processus, qui ressemble plutôt à du mul­ti­tâche, est réglé par le pla­ni­fi­ca­teur.

On peut en déduire les quatre fonctions du noyau :

  1. Gestion de la mémoire : règle la quantité de mémoire vive utilisée et l’endroit où elle est utilisée.
  2. Gestion des processus : détermine quels processus le pro­ces­seur peut utiliser, quand et pendant combien de temps.
  3. Pilote de pé­ri­phé­rique : in­ter­mé­diaire entre le matériel et les processus.
  4. Appel au système et sécurité : reçoit des demandes de service des processus.

Les fonctions d’un noyau, lorsqu’il est cor­rec­te­ment im­plé­menté, restent in­vi­sibles pour les uti­li­sa­teurs. Il travaille dans son propre monde, l’espace du noyau. Les fichiers, les pro­grammes, les jeux, les na­vi­ga­teurs, bref, tout ce que l’uti­li­sa­teur voit, se passe dans l’espace uti­li­sa­teur. L’in­te­rac­tion des deux mondes passe par une interface d’appel système, ou syscall en anglais.

Le noyau du système d’ex­ploi­ta­tion

Pour com­prendre comment le noyau fonc­tionne dans le système d’ex­ploi­ta­tion, il est pré­fé­rable de con­si­dé­rer qu’un or­di­na­teur est divisé en trois parties :

  1. Matériel : base du système com­pre­nant la mémoire de travail, le pro­ces­seur et les dis­po­si­tifs d’entrée et de sortie. L’unité centrale effectue des opé­ra­tions de lecture, d’écriture et de calcul pour la mémoire.
  2. Kernel : noyau d’un système d’ex­ploi­ta­tion. Indique à l’unité centrale ce qu’elle doit faire.
  3. Processus uti­li­sa­teurs : tous les processus en cours gérés par le noyau. Le noyau permet la com­mu­ni­ca­tion entre les processus et les serveurs, également connus sous le nom de com­mu­ni­ca­tion 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 mul­ti­tâches. En com­plé­tant une gestion d’accès, on en fait un système mul­tiu­ti­li­sa­teur sur lequel plusieurs uti­li­sa­teurs peuvent tra­vail­ler si­mul­ta­né­ment. L’au­then­ti­fi­ca­tion 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 nom­breuses archives sur ses noyaux. Apple a déjà fourni les types de noyaux de tous ses systèmes d’ex­ploi­ta­tion sous forme Open Source. Microsoft utilise également un noyau Linux pour le sous-système Windows pour Linux.

Note

En ce qui concerne les dif­fé­rents types de noyaux, on peut ra­pi­de­ment 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 dif­fé­rents types de noyaux pour les dif­fé­rents systèmes d’ex­ploi­ta­tion et terminaux. En ce qui concerne leurs ca­rac­té­ris­tiques, on peut les sub­di­vi­ser en trois groupes :

  1. Noyau mo­no­li­thique : un grand noyau pour toutes les tâches. Il est seul res­pon­sable de la gestion de la mémoire et des processus, ainsi que de la com­mu­ni­ca­tion entre les processus, et offre des fonctions de support du pilote et du matériel. Les systèmes d’ex­ploi­ta­tion tels que Linux, OS X et Windows reposent sur le monolithe.
  2. Micro-noyaux : le micro-noyau est vo­lon­tai­re­ment de petite taille afin de ne pas en­dom­ma­ger l’ensemble du système d’ex­ploi­ta­tion en cas de dé­fail­lance. 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’ap­pli­ca­tion, car il n’existe pas encore de système d’ex­ploi­ta­tion à micro-noyaux.
  3. 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 dy­na­mi­que­ment, comme c’est déjà le cas dans Linux et OS X.
Aller au menu principal