Noyau Linux
État :
Concepts de noyau
Les deux différents types de noyaux linux sont :
A. Monolithique
Un noyau monolithique supporte tous les matériels, réseau, et système de fichiers compilé dans un fichier image unique.
B. Modulaire
Un noyau modulaire possède des pilotes compilés comme fichiers objets, que le noyau peut charger ou décharger sur demande. Les modules chargeables sont conservés dans /lib/modules.
L'avantage d'un noyau modulaire est qu'il n'a pas toujours besoin d'être recompilé lors d'ajout ou de remplacement de matériel sur le système. Un noyau monolithique démarre un peu plus vite qu'un noyau modulaire, mais ne le superforme pas.
Le noyau modulaire
Beaucoup de composants du noyau linux peuvent être compilés comme modules que le noyau peut dynamiquement charger et décharger à la demande.
Les modules opur un noyau particulier sont sauvegardés dans /lib/modules/<kernel-version>.
- Les meilleurs composants à modulariser sont ceux qui ne sont pas requis au démarrage, par exemple les matériels périphériques et les fichiers système supplémentaires.
Les modules du noyau sont contrôlés par les utilitaires fournis par les paquets modutils :
- lsmode
- rmmod
- insmod
- modprobe
- modinfo
Beaucoup de modules sont dépendants de la présence d'autres modules. Une base de données simples des dépendances des modules /lib/modules/<kernel-version>/modules.dep est généré par la commande depmod. Cette commande est lancée par le script rc.sysinit quand le système démarre.
-- modprobe chargera tous les modules et les modules dépendants listés dans modules.dep
-- /etc/modules.conf est consulté pour les paramètres de module (IRQ et IO ports) mais contient le plus souvent une liste d'alias. Ces alias autorisent les applications à se référer à un nom courant pour un composant. Par exemple la première carte réseau est toujours référencée par eth0 et non par le nom du pilotes particuliers.
Fig1 : Échantillon de fichier /etc/modules.conf
alias eth0 e100 alias usb-core usb-uhc alias sound-slot-0 i810_audio alias char-major-108 ppp_generic alias ppp-compress-18 ppp_mppe # 100Mbps full duplex options eth0 e100_speed_duplex=4
Procédure de recompilation du noyau
Les sources du noyau sont conservés dans l'arborescence /usr/src/linux, qui est un lien symbolique vers le répertoire /usr/src/<kernel-version>. A l'extraction d'un nouveau noyau il est recommandé de :
- supprimer le lien symbolique vers l'arborescence des sources de l'ancien noyau :
rm linux
Les sources du noyau organisées sous la forme de RPM créent parfois un lien appelé linux-<version>
extraire la nouvelle archive de sources (e.g linux-<version>.tar.bz2)
tar xjf linux-<version>.tar.bz2
Note : Depuis les noyaux 2.4 le nom du répertoire est linux-version
Créer un lien symbolique appelé linux depuis le répertoire récemment créé :
ln -s linux-<version> linux
Le noyau est déjà configuré maintenant, mais d'abord nous devons nous assurer que les anciens fichiers de librairie sont nettoyé de l'arbre des sources, et cela se fait par la commande make mrproper.