Le Site de TuxLibre

Linux of course ! « Je suis parce que nous sommes »

# A LIRE : Qu'est-ce que le noyau Linux ?

Publié le 28 Novembre 2021 par TUXLIBRE in A LIRE

# A LIRE : Qu'est-ce que le noyau Linux ?

Je retranscris ci-dessous le texte d'un article du site LinuxStoney, il s'agit d'une traduction approximative. Je vous invite à suivre ce site sur les Logiciels Libres et l'open source.

 

Pour les utilisateurs occasionnels et les fans moins expérimentés, Linux est un système d'exploitation open source. Pour les puristes, cependant, le titre « Linux » est réservé au noyau qui alimente le système d'exploitation. Si vous êtes curieux de savoir ce qu'est le noyau Linux, répondons à cette question, en nous concentrant sur les utilisateurs non experts.
 

Modes :

Avant d'expliquer ce qu'est le noyau, il est important de comprendre les termes « mode utilisateur » et « mode noyau ». Le mode utilisateur est lorsque l'exécution du code est incapable d'accéder directement au matériel ou à la mémoire de référence. Pour accéder au matériel et à la mémoire, le code exécuté en mode utilisateur doit déléguer des instructions aux interfaces de programmation d'applications (API) du système. Le mode noyau se produit lorsque l'exécution du code a un accès illimité à tout le matériel et est réservée aux fonctions les plus fiables du système d'exploitation.
 

Qu'est-ce que le noyau Linux ?

Chaque système d'exploitation a un noyau. Windows, macOS, iOS, Android, Chrome OS et Linux disposent chacun d'un système de bas niveau chargé d'interfacer tous les logiciels avec le matériel physique de l'ordinateur. Sans le noyau, aucune de vos applications ne serait capable d'utiliser l'ordinateur physique ; les applications comme Firefox, Chrome, LibreOffice, MS Office ou Outlook ne fonctionneraient pas. Le noyau est également chargé de permettre aux processus d'échanger des informations en utilisant ce qu'on appelle la communication inter-processus (IPC).
Il existe trois types de noyaux :

Noyaux monolithiques : ces noyaux couvrent le processeur, la mémoire, l'IPC, les pilotes de périphérique, la gestion du système de fichiers et les appels de serveur système. Il est également responsable de l'allocation de la mémoire système aux applications. Ces types de noyau sont généralement meilleurs pour l'accès au matériel et le multitâche.

Micronoyaux : Les micronoyaux adoptent une approche minimaliste et ne gèrent que le CPU, la mémoire et l'IPC.

Noyaux hybrides : les  noyaux hybrides ont la possibilité de décider ce qu'ils veulent exécuter en mode utilisateur ou en noyau. Bien que cela offre le meilleur des deux mondes, il faut beaucoup plus aux fabricants de matériel pour créer des pilotes qui assurent l'interface entre l'exécution du code et le matériel.


Quel noyau Linux utilise-t-il ?

Comme Linux utilise l'open source, son noyau est monolithique, tandis que MacOS et Windows utilisent des noyaux hybrides. Le noyau Linux a été conçu en 1991 par Linus Torvalds. À ce jour, M. Torvalds reste le développeur principal du noyau Linux, tandis que des développeurs du monde entier contribuent au noyau Linux.

En fait, on estime qu'environ 10 000 développeurs de plus de 1 000 entreprises ont contribué au noyau Linux (depuis le début du suivi en 2005).


Où est le noyau ?

Si vous ouvrez une fenêtre de terminal et exécutez la commande ls /boot, vous verrez un fichier appelé vmlinuz-VERSION (où VERSION est le nom ou le numéro de version). Le fichier vmlinuz est le noyau Linux amorçable actuel et le « z » indique que le noyau est compressé ; donc au lieu de vmlinux nous avons vmlinuz.

 
La liste du répertoire /boot.

Dans ce répertoire /boot, il y a d'autres fichiers de noyau importants tels que initrd.img-VERSION, system.map-VERSION et config-VERSION (où VERSION est un nom ou un numéro de version). Ces autres fichiers ont les finalités suivantes :

  •     Initrd  : utilisé comme un petit disque RAM qui extrait et exécute le vrai fichier du noyau.
  •     System.map  : utilisé pour la gestion de la mémoire, avant le chargement du noyau.
  •     Config  : indique au noyau quelles options et modules charger.

Modules :

Sans modules, le noyau ne serait pas très utile. Les modules activent efficacement les pilotes nécessaires pour communiquer avec le matériel, sans consommer toute la mémoire du système.

Les modules ajoutent également des fonctionnalités au noyau, telles que la communication avec les périphériques, la gestion du système de fichiers, la sécurité, etc. Vous pouvez lister, ajouter et supprimer des modules du noyau avec les commandes suivantes :

    Le  lsmod  répertorie tous les modules du noyau actuellement chargés.
    L'  insmod  charge un module du noyau en cours d'exécution.
    Le  rmmod  déchargera un module du noyau en cours d'exécution.

Donc vous voyez, avec l'aide de quelques commandes simples, le noyau Linux peut être assez flexible.
 

Le noyau actuel :

Au moment de cette publication, le noyau Linux stable est 5.15, mais toutes les distributions Linux n'incluront pas le dernier noyau. En fait, la distribution mise à jour de l'interface du système d'exploitation élémentaire est le noyau 5.4.0-30. Que signifie ce nombre ? Dans le cas du dernier noyau sur Elementary OS, cela signifie :

    5 est la version majeure
    4 est la version mineure
    0-30 est l'examen>

Il est également possible de télécharger différentes versions du noyau Linux depuis  kernel.org , et de le compiler. La compilation du noyau Linux est une tâche qui ne devrait être effectuée que pour ceux qui ont déjà des connaissances plus avancées.

Un noyau mal compilé peut rendre le système non amorçable. Donc, à moins que vous ne soyez prêt à vous lancer dans la tâche difficile de compiler du code à ce niveau, utilisez le noyau par défaut, qui est fourni et mis à jour dans la distribution de votre choix.

 

Commenter cet article