Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !


Rédigé par Kmeleon

Les modules Linux

Un module est un morceau de code permettant d'ajouter des fonctionnalités au noyau : pilotes de périphériques matériels, protocoles réseaux, etc…

Il peut être chargé dynamiquement sans avoir besoin de recompiler le noyau (avec la commande insmod ou modprobe) ou de redémarrer le système.

Les modules sont exécutés dans l'espace mémoire du noyau :

  • Ils possèdent le contrôle total de la machine
  • Ils peuvent détourner ou créer un appel système
  • Ajoutent une fonctionnalité donnée au noyau (pilotes, support système de fichier, etc…)
  • Peuvent être (dé)chargés à tout moment, quand leur fonctionnalité est requise. Une fois chargés, ils ont accès à tout le noyau.
  • Aucune protection particulière.
  • Utiles pour garder une image du noyau à une taille minimum (essentiel pour les distributions GNU/Linux pour PCs).
  • Permettent de supporter l'incompatibilité entre pilotes (on charge soit l'un soit l'autre, mais pas les deux)
  • Permettent de fournir des pilotes binaires (mauvaise idée), utilisables sans avoir à recompiler le noyau.
  • Les modules permettent de développer des pilotes sans redémarrer: chargement, test, déchargement, recompilation, chargement…
  • Les modules (pilotes) peuvent aussi être compilés statiquement dans le noyau

La commande lsmod: lsmod Module Size Used by rt2500 176612 1 ppdev 9220 0 speedstep_lib 4484 0 cpufreq_userspace 4696 0 cpufreq_stats 5636 0 freq_table 4740 1 cpufreq_stats cpufreq_powersave 1920 0 cpufreq_ondemand 6428 0 cpufreq_conservative 7332 0 video 16260 0 tc1100_wmi 6916 0 sony_acpi 5644 0 pcc_acpi 12416 0 hotkey 11556 0 dev_acpi 11140 0 container 4608 0 button 6672 0 acpi_sbs 19980 0 battery 9988 1 acpi_sbs ac 5252 1 acpi_sbs i2c_acpi_ec 5120 1 acpi_sbs ipv6 265856 8 vfat 13440 0 fat 53020 1 vfat lp 11844 0 joydev 10048 0 tsdev 8000 0 usblp 13056 0 pcmcia 40508 0 floppy 62148 0 parport_pc 35780 1 parport 36296 3 ppdev,lp,parport_pc …….sortie coupée……

On voit que le module "freq_table" est utilisé par "cpufreq_stats". Il y a des dépendances entre les modules.

Lister les modules

Chargement/Dechargement d'un module

Empécher le chargement d'un module

  • materiel/modules_linux.1174930572.txt.gz
  • Dernière modification: Le 18/04/2011, 14:48
  • (modification externe)