[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Ceci est une ancienne révision du document !


Le noyau Linux

Que fait le noyau Linux ?

Vous avez probablement entendu des gens parler de compilation du kernel ou de construction du kernel, mais qu'est-ce qu'est un kernel exactement et à quoi sert-il ? Le kernel est le centre de votre ordinateur. C'est la fondation du système d'exploitation tout entier. Le kernel joue le rôle d'un pont entre le matériel et les applications. Cela signifie que le kernel est (généralement) la seule partie logicielle responsable de la gestion des composants matériels de votre ordinateur. C'est le kernel qui ordonne à votre disque dur de rechercher certaines données. C'est le kernel qui ordonne à votre carte réseau d'envoyer des changements rapides de courant. Le kernel est aussi à l'écoute du matériel. Lorsque la carte réseau détecte un ordinateur distant envoyant de l'information, elle renvoie cette information au kernel. Cela fait du kernel le logiciel le plus simple et le plus complexe de votre ordinateur.

Travailler avec les modules

La complexité d'un kernel Linux récent est stupéfiante. Le code source pour le kernel représente environ 400 Mo non compressés. Il y a des milliers de développeurs, de centaines d'options et si tout était activé le noyau représenterait plus de 100 Mo à lui tout seul. Afin de conserver une taille raisonnable (ainsi que la quantité de RAM nécessaire pour le kernel), la plupart des options du kernel sont compilées sous forme de modules. Vous pouvez vous représenter ces modules comme des pilotes de périphériques qui peuvent être insérés ou enlevés du kernel à volonté. En fait, la plupart ne sont pas des pilotes de périphériques, mais correspondent à la prise en charge de choses telles que des protocoles réseaux, de systèmes de sécurité ou même de systèmes de fichiers. En résumé, presque toute partie du kernel Linux peut être compilée en tant que module.

Il est important de comprendre que Slackware gèrera automatiquement le chargement des modules pour vous. Lorsque le système démarre, udevd(8) est lancé et commence à analyser le matériel présent. Pour chaque périphérique découvert, il chargera le module correspondant et créera un nœud dans /dev. Cela signifie que vous n'aurez pas à charger de modules pour pouvoir utiliser votre ordinateur, sauf cas particulier.

Comment savoir quels modules sont actuellement actifs et comment en ajouter ou en retirer ? Fort heureusement, nous avons une panoplie complète d'outils pour gérer cela. Comme vous avez pu le deviner, l'outil pour lister les modules est lsmod(8).

darkstar:~# lsmod
Module                  Size  Used by
nls_utf8                1952  1 
cifs                  240600  2 
i915                  168584  2 
drm                   168128  3 i915
i2c_algo_bit            6468  1 i915
tun                    12740  1 
... lignes supprimées ...

En plus d'afficher les modules actuellement chargés il affiche la taille de chacun et vous indique quels autres modules l'utilisent.

Il existe deux programmes pour charger des modules : insmod(8) et modprobe(8). Tous deux peuvent charger des modules et signaler toute erreur (comme le fait de charger un module pour un périphérique qui n'est pas présent sur votre système), mais modprobe est souvent préféré car il peut charger toutes les dépendances d'un module. Son utilisation est très simple.

darkstar:~# insmod ext3
darkstar:~# modprobe ext4
darkstar:~# lsmod | grep ext
ext4                  239928  1 
jbd2                   59088  1 ext4
crc16                   1984  1 ext4
ext3                  139408  0 
jbd                    48520  1 ext3
mbcache                 8068  2 ext4,ext3

Supprimer des modules peut être une entreprise risquée, et une fois de plus nous avons deux logiciels pour cela : rmmod(8) et modprobe. Afin de supprimer un module avec modprobe, vous devrez utiliser l'option -r.

darkstar:~# rmmod ext3
darkstar:~# modprobe -r ext4
darkstar:~# lsmod | grep ext

Pourquoi et comment compiler un noyau

make-menuconfig

Navigation

Chapitre précédent : Gérer les mises à jour

Sources

  • Publication initiale d'Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson
  • Traduction initiale de escaflown
  • Traduction de Ellendhel

 fr:slackbook:linux_kernel ()
Cette traduction est plus ancienne que la page originale et est peut-être dépassée. Voir ce qui a changé.