Systèmes d'Exploitation I - TP1 : Noyau et modules

Systèmes d'Exploitation, Programmation · lab

Voir tous les documents en programmation

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