Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
materiel:modules_linux [Le 26/03/2007, 19:40] 81.248.193.197 |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | Rédigé par [[utilisateurs:kmeleon|Kmeleon]] | ||
- | |||
- | ====== Les modules Linux ====== | ||
- | |||
- | |||
- | |||
- | |||
- | ===== Présentation ===== | ||
- | |||
- | 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 | ||
- | |||
- | |||
- | ===== Caractéristiques ===== | ||
- | |||
- | * 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 | ||
- | |||
- | ===== Gestion des modules ===== | ||
- | |||
- | 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\\ | ||
- | .......sortie coupée......''\\ | ||
- | .. | ||
- | |||
- | On voit que le module "freq_table" est utilisé par "cpufreq_stats". Il y a des dépendances entre les modules. Il faut en tenir compte lorsque l'on veut décharger des modules. | ||
- | |||
- | |||
- | |||
- | ==== Lister les modules ==== | ||
- | |||
- | ==== Chargement/Dechargement d'un module ==== | ||
- | |||
- | ==== Empécher le chargement d'un module ==== |