Vous êtes sur la page 1sur 10

Chapitre 5

Noyau, Performances et Tuning

5-1
1. Intrdocution
Un système d’exploitation sert principalement à rendre un calculateur « utilisable ».
Ainsi, les logiciels peuvent communiquer entre eux, utiliser le processeur, la mémoire, le
disque dur, la carte son, le clavier, la souris, la carte graphique, la carte réseau et tout
autre matériel pouvant être ajouté à la configuration de base. La communication avec le
matériel passe obligatoirement par le « noyau ». Ce dernier est en réalité un
« gestionnaire de ressources ».

Système d’exploitation

2. Le noyau Linux
Le noyau Linux, créé en 1991 par Linus Torvalds, fait partie de la famille des noyaux
monolithiques. C’est à dire que toutes ses fonctionnalités et composants sont
regroupés dans un programme unique. Il est exécuté durant la phase de démarrage du
système selon le diagramme suivant :

5-2
Le noyau Linux n’est qu’un fichier qui se trouve dans le dossier /boot. Son nom, par
convention, commence par vmlinuz-X.Y.Z.p-Vtxt.

Dans notre exemeple, le fichier est nommé : vmlinuz-5.0.0-27-generic, où :


X : version majeure du noyau. Dans notre exemple, la valeur est 5.
Y : version mineure du noyau.
Z : version de révision (corrections de bogues, de sécurité ou un ajout de
fonctionnalité).
p : version corrigée ou intermédiaire présente depuis la version 2.6. Quand le noyau
nécessite une mise à jour mineure (correction d’un ou deux bugs, etc.) mais pas ou peu
d’ajouts de fonctionnalités, on incrémente cette valeur.
V : comme pour les packages, version propre à l’éditeur de la distribution.
txt : on rajoute parfois un texte pour donner des précisions sur le noyau. Par exemple,
smp indique un noyau multiprocesseur.

La commande uname renseigne sur le noyau et la machine dans laquelle il est installée.

5-3
3. Composition du noyau Linux
Le noyau Linux est libre. Ses sources sont disponibles. Il est donc possible de le
recompiler pour l’adapter finement à ses besoins, de le modifier, d’y rajouter des
extensions. A partir de la version 2.6, le noyau linux, qui est resté toujours monolithique,
est devenu aussi modulaire. Cette modularité apporte au noyau la possibilité d’ajouter
ou d’enlever des modules au noyau, sans avoir le besoin de redémarrer le système.

Le noyau Linux peut être représenté par l’ensemble des blocs fonctionnels suivants :

• System Call Interface (SCI) :


C’est une interface logicielle par laquelle transitent tous les appels entre
l’esapace utilisateur (applications) et le noyau Linux.
• Process Managment (PM) :
C’est le composant responsable de la gestion des processus. Au niveau noyau, on
parle de thread. Cette gestion tourne autour de l’utilisatin du ou des processeurs
par les différents processus.
• Memory Management (MM) :
En plus du processseur, qui est la première ressource matérielle à partager entre
les différentes applications, la mémoire se place en deuxième position. Sa gestion
est assurée par cette partie du noyau. Par mémoire, on désigne à la fois la
mémoire réelle (RAM) et la mémoire virtuelle (disque).

5-4
• Virtual File System (VFS) :
C’est une interface logicielle qui se présente comme un système de fichiers
virtuels, permettant ainsi aux applications d’accèder aux différents périphériques
de stockage sans préoccupations des spécifités techniques de leurs systèmes de
fichiers réels. Chaque périphérique est vu par le système comme un « fichier ».
• Network Stack (NS) :
L’apparition de Linux a coïncidé avec celle de l’Internet. Linux regroupe une riche
pile de protocoles réseau.
• Device Drivers (DD) :
Chaque périphérique nécessite pour son bon fonctionnement un « pilote
particulier ». Ce programme informatique joue le rôle d’interface logicielle entre
le matériel et le reste du système. Il met à la disposition du noyau un ensemble
d’API (Application Programming Interface) génériques permettant de répondre
aux requêtes des applications executées dans l'espace utilisateur.

4. Les modules du noyau


Le noyau Linux est présent physiquement sous forme d’un fichier unique (contenant les
composants de base) et de Modules. Les modules permettent de munir le noyau de base
d’autres « capacités » logicielles, telles que l’utilisation de nouveaux périphériques. Ces
modules sont présents sous forme de fichiers situés dans un répertoire portant le
numéro de la version du noyau à l’intérieur du réperoire /lib/modules. Dans notre
exemple, le répertoire est nommé: 5.0.0-27-generic

La commande lsmod permet de lister les modules du noyau qui sont chargés dans la
mémoire. Ces modules s’exécutent dans l’espace du noyau. Ils sont paramétrables. Ils
peuvent être chargés et déchargés à la demande évitant ainsi un redémarrage de la
machine.

5-5
Pour chaque module on peut lire son « nom », sa « taille » ainsi que le « nombre des
modules » l’utilisant.

5. Manipulation des modules du noyau


Linux offre un ensemble de commandes permettant de manipuler ses modules. Il est
évident que la manupilation des modules ne peut se faire que par l’administrateur du
système.

a) La commande : modinfo
La commande modinfo affiche des informations sur un module donné. Voici un exemple
sur le module psmouse:

5-6
b) La commande : insmod
La commande insmod : charge un module dans la mémoire, sans gérer ses dépendances,
qui restent à la charge de l’uitlisateur.
Exemple : chargement du module psmouse

Vous allez retrouver ce module dans la liste des modules chargés :

c) La commande : rmmod
La commande rmmod décharge un module de la mémoire, sans gérer ses dépendances.
Exemple : déchargement du module psmouse. Suite à ce déchargement, vous allez
constater l’arrêt de fonctionnement de votre souris.

d) La commande : modprobe
La commande modprobe charge un module dans la mémoire, tout en gérant ses
dépendances en se basant sur les listes de dépendances générées par la commande
depmod. Cette commande est fortement recommandée pour la manipulation des
modules. Elle utilise les deux commandes preçédentes. Elle offre plus de souplesse et
d’avantages à l’utilisateur par rapport à insmod et rmmod.

5-7
6. Paramétrage des modules
Le paramétrage d’un module donnée peut se faire soit par ligne de commande soit à
travers un fichier de configuration. Vous avez vu dans la section preçédente que la
commande la plus recommndée pour la manipulation des modules est modprobe. Sous
la distribution Ubuntu, la configuration de cette commande est associée à un dossier
nommé : modprobe.d. Il contient des fichiers (textes) permettant de paramétrer les
différents modules.

La syntaxe la plus simple de cette commande est :


modprobe [module_name] [parameter=value]

Voici un extrait du contenu du fichier alsa-base.conf (pour la gestion des cartes son).

5-8
Les fichiers de configuration utilisent les instructions suivantes : alias, options, install,
remove, blacklist.

7. Compilation du noyau et installation du noyau


Le noyau linux est un ensemble de fichiers. Ces fichiers possèdent leurs « sources ». Ces
derniers peuvent être modifiés puis recompiler. C’est le site www.kernel.org qui offre
gratuitement le téléchargement du noyau sous forme d’une archive compressée.

A l’interieur de l’archive, vous trouverez pour cette version :

5-9
La (re)compilation d’un noyau nécessite un ensemble d’outils logiciels, à savoir :
• le compilateur C
• les bibliothèques de développement C standard
• la bibliothèque ncurses (pour menuconfig)
• la bibliothèque qt3 (pour xconfig)
• les outils Make
• les modutils
• mkinitrd
Ces outils sont disponibles dans les différentes distributions GNU/Linux.

8. Conclusion
Dans ce chapitre, vous avez pu découvrir les aspects clés du noyau Linux. La maîtrise de
ces aspects devra passer par une lecture (technique) approfondie et une pratique de la
programmation des modules, choses qui restent abordables pour toute personne
s’interessant au noyau Linux.

5-10