Systèmes d'Exploitation I - 1
année Li en e
ère
TP1 : Noyau et modules
ESEN - Université de la Manouba
Amine DHRAIEF
Le noyau gère les fon tions élémentaires du système, omme la gestion de la mémoire
et des pro essus, l'a ès aux disques durs et aux artes réseau, et . Il est de plus modu-
laire : le noyau lan é à l'amorçage ne ontient que les fon tions né essaires au démarrage de
l'ordinateur. Lorsqu'une fon tion supplémentaire est requise (par exemple, pour du matériel
spé ial), le ode né essaire est lié au noyau en tant que module. Lorsque ette fon tion n'est
Publicité
plus utilisée pendant quelque temps, le module peut être supprimé du noyau.
Commandes de gestion des modules
1. La ommande lsmod a(cid:30) he une liste de tous les modules intégrés dans le noyau au
moment où elle est exé utée. A(cid:30) hez tous les modules en tapant $lsmode| sort |
less.
2. Cher hez les modules responsables
(a) de la gestion du son en tapant $lsmode|grep snd.
(b) de la gestion de la video en tapant $lsmode|grep video.
( ) des périphériques USB.
(d) des périphériques réseaux wi(cid:28) (s'il y a une arte sur votre ma hine ma 802.11).
3. modinfo a(cid:30) he des informations sur un module. Celui- i ne doit pas né essairement se
Publicité
trouver dans le noyau.
(a) A(cid:30) hez les données pour le module e1000, qui est un pilote pour les artes réseau
Intel Pro/1000, en tapant $modinfo e1000.
(b) A(cid:30) hez les données pour le module usbhid.
4. Pour e qui est du hargement et du dé hargement d'un module, il faut utiliser la om-
mande modprobe :
(a) A(cid:30) hez les informations sur le module 3 59x.
(b) Chargez le module 3 59x en tapant sudo modprobe -a 3 59x.
( ) Dé hargez le module 3 59x en tapant sudo modprobe -r 3 59x.
(d) A(cid:30) hez le manuel des ommandes insmod et rmmod en tapant $man insmod et $man
rmmod.
Publicité
(e) Chargez et dé hargez le module 3 59x en utilisant les ommandes insmod et rmmod.
Module hello world
L'ob je tif de ette se tion est d'é rire un module hello world pour le noyau LINUX.
5. Dans un (cid:28) hier hello. opiez le ode sour e i-dessous
6. Que représente printk ? module_init() ? module_exit() ?
7. A(cid:28)n de ompiler notre module, nous allons utilisé la ommande make. make est un logi iel
qui onstruit automatiquement des (cid:28) hiers, souvent exé utables, ou des bibliothèques à
partir d'éléments de base tels que du ode sour e. Il utilise des (cid:28) hiers appelés Make(cid:28)le
qui spé i(cid:28)ent omment onstruire les (cid:28) hiers ibles. À la di(cid:27)éren e d'un simple s ript
shell, make exé ute les ommandes seulement si elles sont né essaires. Le but est d'arriver
à un résultat (logi iel ompilé ou installé, do umentation réée, et .) sans né essairement
Publicité
refaire toutes les étapes. make est parti ulièrement utilisé sur les plates-formes UNIX.
Nous allons utilisé le Makefile i-dessous pour ompiler notre ode sour e. É rivez dans
(cid:28) hier Make(cid:28)le le ode i-dessous. Dans un Make(cid:28)le, les espa es sont obligatoirement
des tabulations.
8. Compilez votre module en utilisant la ommande $make
9. Chargez votre module en utilisant ette fois la ommande $sudo insmode hello.ko
10. A(cid:30) hez les messages de debug de votre noyau en utilisant la ommande $dmesg
11. Dé hargez votre module en utilisant ette fois la ommande $sudo rmmode hello.ko
12. A(cid:30) hez les messages de debug de votre noyau en utilisant la ommande $dmesg
Page 2