Noyau Linux

Transcription

Noyau Linux
Table des matières
1
Noyau Linux ............................................................................................................... 2
1.1 NOYAU ............................................................................................................... 2
1.1.1
VERSION DU NOYAU ............................................................................... 2
1.1.2
NUMÉRO DE VERSION............................................................................. 2
1.1.3
EMPLACEMENT DU NOYAU .................................................................. 3
1.1.4
OU TROUVER LE DERNIER NOYAU? ................................................... 3
1.1.5
NOYAU 2.6 .................................................................................................. 3
1.2 MISE À JOUR DU NOYAU ............................................................................... 4
1.3 MODULES DU NOYAU .................................................................................... 4
1.3.1
CHARGEMENT AUTOMATIQUE ............................................................ 4
1.3.2
UTILITAIRES DE MODULES DE NOYAU .............................................. 5
_____________________________________________________________________
 2011 Hakim Benameurlaine
1
1
1.1
Noyau Linux
NOYAU
Le noyau constitue la couche matérielle de Linux, vous paramétrez dans celui-ci
les modules qui vous serviront à déclarer vos périphériques: carte vidéo, souris,
usb..etc
Vous pouvez générer vos pilotes de périphérique à l'intérieur du noyau (option Y
dans la configuration) ou bien générer un module qui sera chargé
dynamiquement (option M). L'avantage de choisir un module est que le noyau
sera plus petit donc plus rapide à charger avec la possibilité de
charger/décharger dynamiquement des modules sans redémarrer, ce qui s'avère
pratique.
1.1.1 VERSION DU NOYAU
Pour déterminer les noyaux installés sur votre système:
# rpm -q kernel
Pour déterminer la version ACTUELLE du noyau chargé:
# uname -r
1.1.2 NUMÉRO DE VERSION
Le numéro de version d’un noyau comporte trois segments :
Majeur (version)
Majeur (indique un changement majeur dans le noyau). Linux est passé en version
1 en 1994 et la version 2 actuelle depuis 1996.
Mineur (patchlevel)
Un second numéro permet d’identifier le niveau de développement dont est issu le
noyau. Ces versions, que l’on peut qualifier de principales, déterminent alors
l’architecture et les fonctionnalités du noyau.
Sous-version (sublevel)
Il existe une notion de sous-version qui fait état de l’avancement du développement
pour une même version principale.
Révision (extraversion)
_____________________________________________________________________
 2011 Hakim Benameurlaine
2
Un quatrième numéro à été introduit pour les corrections de bogues dans une même
sous-version.
Par exemple pour un noyau 2.6.11-1
o
o
o
o
2 est la version majeure
6 est la version mineure
11 est le numéro de sous-version
1 indique le numéro de révision
1.1.3 EMPLACEMENT DU NOYAU
L’image du noyau se trouve dans le répertoire /boot et porte le nom de vmlinuzversion
# ls /boot/vmlinuz*
1.1.4 OU TROUVER LE DERNIER NOYAU?
Si vous voulez avoir la dernière version du noyau, vous pouvez le télécharger à partir
www.kernel.org ou bien http://mirror.centos.org/centos/5.4/updates/SRPMS/
1.1.5 NOYAU 2.6
Le noyau fourni avec Linux est construit de façon personnalisée par l'équipe noyau
de CentOS, afin d'assurer son intégrité et sa compatibilité avec le matériel pris en
charge. Avant de pouvoir lancer un noyau, celui-ci doit subir toute une série de tests
d'assurance de la qualité.
Les noyaux Linux officiels sont mis en paquetage sous forme de RPM de façon à ce
qu'ils soient faciles à mettre à jour et à vérifier. Par exemple, en installant le
paquetage RPM kernel, Il modifie le fichier de configuration du chargeur de
démarrage afin que le nouveau noyau soit démarré si GRUB ou LILO est installé.
Ce module couvre les étapes nécessaires à la mise à jour du noyau sur un système
x86 seulement.
Le noyau 2.6 est fourni avec Linux. Voici les caractéristiques principales du noyau
2.6, tel que vous le trouverez dans Linux :





Le répertoire pour la source du noyau est /usr/src/linux-2.6 et non plus
/usr/src/linux qui devient un lien symbolique vers /usr/src/linux-2.6.
Prise en charge du système de fichiers ext3.
Support multiprocesseur (SMP).
Prise en charge de la mémoire vive physique jusqu'à 64 gigaoctets.
Prise en charge USB.
_____________________________________________________________________
 2011 Hakim Benameurlaine
3
1.2
MISE À JOUR DU NOYAU
Vous pouvez utiliser le service yum-updatesd pour mettre à jour automatiquement
votre noyau et les autres paquetages sur votre machine.
Vous pouvez aussi mettre à jour manuellement le noyau en utilisant la commande :
#
yum update kernel
Pour vérifier si une mise à jour du noyau existe :
#
1.3
yum check-update
kernel
MODULES DU NOYAU
Le noyau Linux a une conception modulaire. Au démarrage, seul un noyau résident
minimal est chargé dans la mémoire. Par la suite, chaque fois qu'un utilisateur
demande une fonction qui n'est pas présente dans le noyau résident, un module de
noyau est chargé dynamiquement dans la mémoire. Après un délai d'inactivité
spécifié, le module peut être supprimé de la mémoire.
Les fichiers contenant le code compilé des modules se trouvent dans un des sousrépertoires de /lib/modules/<version-noyau>/kernel/drivers et porte
l’extension .ko
Un inconvénient de l’utilisation de la modularité est l’impossibilité d’utiliser les
modules pour le matériel ou les fonctionnalités nécessaires au démarrage. Par
exemple il n’est pas possible d’utiliser un module pour le pilote du contrôleur de
disque contenant le système de fichier racine.
Il est possible d’outrepasser cette limite en créant un disque mémoire d’initialisation
"Initial RAM Disk" ou "initrd" contenant tous les modules nécessaires. Ce fichier
spécial devra alors être chargé à l’amorçage par GRUB (directive initrd dans fichier
/etc/grub.conf).
1.3.1 CHARGEMENT AUTOMATIQUE
A partir de la version 2.0, la structure modulaire du noyau est supportée. Les
modules sont chargés seulement au besoin, ce qui réduit considérablement la taille
du noyau. C’est le noyau qui se charge de cette opération depuis sa version 2.2.x ;
avant cela, les modules étaient chargés par le démon kerneld avec les noyaux de la
série 2.0.x.
Le fichier de configuration /etc/modprobe.conf regroupe les paramètres éventuels
à passer lors du chargement des modules (par exemple numéro IRQ associé à la
carte) ainsi que des alias sur les noms de modules.
_____________________________________________________________________
 2011 Hakim Benameurlaine
4
Il est possible de donner un nom générique comme eth0 à un module et de
l’associer au pilote réel de la carte réseau Ethernet.
Ce fichier est également utilisé par les commandes depmod et modprobe.
1.3.2 UTILITAIRES DE MODULES DE NOYAU
Vous pouvez également utiliser un groupe de commandes pour répertorier, charger
ou décharger des modules de noyau. Ces commandes sont utiles si vous voulez
essayer différents modules ou voir si un module a bien été chargé.

lsmod
La commande lsmod permet d'afficher la liste des modules actuellement chargés.
Exemple de résultats lsmod
# lsmod
Module
ipv6
autofs4
sunrpc
acpi_cpufreq
video
button
i2c_piix4
i2c_core
pcnet32
mii
floppy
dm_snapshot
dm_zero
ext3
jbd
BusLogic
sd_mod
scsi_mod
Size
248513
21957
163557
7625
17733
7121
9425
22721
33357
5825
61373
18925
2241
136137
60629
71621
21697
139341
Used by
18
2
1
0
0
0
0
1 i2c_piix4
0
1 pcnet32
0
0
0
2
1 ext3
2
3
2 BusLogic,sd_mod
Comme vous pouvez le voir dans l'exemple, lsmod affiche le nom du module, la taille
mémoire, un compteur d'utilisation et la liste des autres modules utilisant ce module.
_____________________________________________________________________
 2011 Hakim Benameurlaine
5

insmod
Par défaut, insmod essaie de charger le module à partir des sous-répertoires
/lib/modules/<version-noyau>/kernel/drivers. Il existe un sous-répertoire
pour chaque type de module, comme le sous-répertoire net pour les pilotes
d'interface réseau.
La commande insmod charge le module en mémoire si les dépendances avec les
autres modules sont remplies. On préfère utiliser la commande modprobe car elle gère
automatiquement les dépendances entre modules.
Par exemple, la commande suivante permet de charger le module floppy :
# modprobe floppy

rmmod
Pour décharger des modules de noyau, utilisez la commande rmmod suivie du nom du
module. L'utilitaire rmmod ne déchargera que les modules qui ne sont pas utilisés et
qui ne constituent pas une dépendance d'autres modules en cours d'utilisation.
Utiliser l’option -a pour décharger tous les modules inutilisés.
Par exemple, la commande suivante permet de décharger le module floppy :
# rmmod floppy
_____________________________________________________________________
 2011 Hakim Benameurlaine
6

modinfo
modinfo
constitue un autre utilitaire de module de noyau utile. Vous pouvez utiliser
la commande modinfo pour afficher des informations concernant un module de
noyau. La syntaxe générale est :
modinfo [options] <module>
Les options comprennent -d, qui affiche une brève description du module et -p, qui
répertorie les paramètres pris en charge par le module. Pour une liste complète des
options, reportez-vous à la page de manuel modinfo (man modinfo).
# modinfo mii
filename:
/lib/modules/2.6.171.2142_FC4/kernel/drivers/net/mii.ko
license:
GPL
description:
MII hardware support library
author:
Jeff Garzik <[email protected]>
srcversion:
16DCEDEE4B5629C222C352D
depends:
vermagic:
2.6.17-1.2142_FC4 mod_unload 686 REGPARM
4KSTACKS gcc-4.0

depmod
Pour faciliter la dépendance entre les modules, la commande depmod parcourt
l’arborescence /lib/modules et sauvegarde les dépendances trouvées dans le fichier
/lib/modules/<version-noyau>/modules.dep
Le fichier est alors utilisé par la commande modprobe qui charge le module demandé
ainsi que tous les modules nécessaires.
_____________________________________________________________________
 2011 Hakim Benameurlaine
7

Documents pareils