Les composants du noyau

(201.1)

Les candidats doivent être capables d'utiliser les composants du noyau qui sont nécessaires pour un matériel spécifique, les pilotes matériels, les ressources système et les exigences. Cet objectif inclut la mise en œuvre différents types d'images du noyau, l'identification des noyaux stables et de développement et de patchs, ainsi que l'utilisation des modules du noyau.

Savoir fondamentaux:

  • La documentation du noyau 2.6.x

Fichiers clés, termes et utilitaires incluent (entre autres):

  • /usr/src/linux
  • /usr/src/linux/Documentation
  • zImage
  • bzImage

Les différents types d'images du noyau

Un noyau peut être monolithique ou non. Un noyau monolithique est un noyau qui contient tous les codes de pilotes nécessaires à l'utilisation de tout le matériel relié au ou contenus dans le système que vous configurez. Un tel noyau n'a pas besoin de l'aide de modules. Alors pourquoi ne pas simplement construire un noyau monolithique pour tout le monde et rester tranquille? La raison principale est que les noyaux ont tendance à être assez lourd et souvent ne tiennent pas sur une seule disquette. Si le noyau ne tient pas sur une seule disquette, cela pose des problèmes lors de la création d'une disquette de démarrage d'urgence (boot disk). Une autre raison est que l'implémentation de nouveaux pilotes pour une meilleure utilisation de certains matériels entrainera immédiatement dans la nécessité d'un nouveau noyau. Ce n'est pas le cas avec des modules comme il sera expliqué dans la section intitulée «Utilisation des modules du noyau %%Mettre en lien ici%%".

La plupart du temps, une image du noyau est compressé pour économiser de l'espace. Il y a deux types de fichiers de compression du noyaux: zImage et bzImage.

La différence entre les fichiers zImage et bzImage réside dans leur formatages différents et des algorithmes de chargement. Pour zImage la taille maximum autorisé est de 520Kb (KernelSize) (voir:Johnson01), bzImage n'a pas cette restriction. En conséquence de ce fait et avec la taille croissante du noyau Linux, le noyau bzImage est maintenant le type d'image préféré.

Note :

Les deux images utilisent la compression gzip. Le "bz" dans bzImage se réfère à "zImage gros", pas à "bzip"!

Identification des noyaux stables, développement et des patches

Un numéro de version du noyau se compose de trois parties: majeur, mineur et le niveau de patch, tous séparés par des points.

La version majeure est incrémenté quand un changement majeur dans le noyau est fait.

La version mineure est incrémenté lorsque des changements significatifs et des ajouts sont faits. Même numérotés les versions mineures, par exemple 2.4, 2.6, 2.8, sont considérées comme des versions stables et les numéros impairs, par exemple, 2.1, 2.3 sont considérés comme étant en développement et sont principalement utilisés par les développeurs du noyau.

La dernière partie du numéro de version du noyau est le niveau de patch ainsi que l'on l'appelle. Comme les erreurs dans le code sont corrigées (et/ou des fonctionnalités sont ajoutés), le niveau de patch est incrémenté. Vous ne devriez mettre votre noyau à un niveau plus élevé de patch quand votre noyau actuel a un problème de sécurité ou ne fonctionne pas correctement ou lorsque de nouvelles fonctionnalités ont été ajouté au noyau.

Qu'est-ce que les modules du noyau

Modules du noyau Linux sont des fichiers objets (fichiers .ko ) produit par le compilateur C, mais pas lié dans un exécutable complet. Les modules du noyau peuvent être chargés dans le noyau pour ajouter des fonctionnalités au besoin. La plupart des modules sont distribués avec le noyau et compilé avec lui. Chaque version du noyau a son propre ensemble de modules.

Les modules sont stockés dans une arborescence de répertoires sous /lib/modules/kernel-version, où kernel-version est la chaîne rapportés par la commande `uname-r`, exemple 2.6.5-15smp. les hiérarchies (sous-dossiers) de plus modules peuvent être disponibles dans /lib/modules, si plusieurs noyaux sont installés.

Les sous-répertoires qui contiennent des modules d'un type particulier de noyau existent sous le répertoire /lib/modules/kernel-version. Ce regroupement est pratique pour les administrateurs, mais aussi facilite d'importantes fonctionnalités pour la commande modprobe.

Les modules typiques:

block

Modules pour périphériques blocs spécifiques rares tels que les contrôleurs RAID ou des lecteurs de bande IDE.

cdrom

Modules de pilote pour les périphérique CD-ROM non standard.

fs

Pilotes pour systèmes de fichiers tels que MS-DOS (le module msdos.ko).

ipv4

Comprend les fonctions du noyau modulaire pour le traitement de l'IP, telles que le masquage de l'adresse IP.

misc

Tout ce qui ne rentre pas dans l'un des autres sous-répertoires rentre ici. Notez qu'aucun module n'est stocké en haut de cet arbre.

net

Module pour les pilotes des interfaces réseau.

scsi

Contient des modules pilote pour le contrôleur SCSI.

video

Modules de pilote spécial pour les cartes vidéo.

Les répertoires des modules sont aussi appelés balises dans le contexte des commandes de manipulation du module.