Comment utiliser lsmod sous Linux (avec un exemple pratique)
Le noyau Linux est un mystère pour la plupart, mais ce n’est pas nécessaire ! Bienvenue dans le monde passionnant de lsmod, un outil qui vous permet de voir quels modules le noyau utilise, et plus encore !
Sommaire
Quel est lsmod?
Expliquer lsmod
, l’outil qui permet de lister les modules dans le noyau Linux, il faut d’abord comprendre ce qu’est un module. Un module Linux est un morceau de code modulaire (s’exécutant dans un format compilé) qui peut être chargé ou déchargé à volonté du noyau Linux. Le principal avantage de l’utilisation de ces modules est leur modularité et leur granularité.
Vous pouvez considérer les modules Kernel comme des plugins dans d’autres logiciels. Chaque fois que vous avez besoin d’une fonctionnalité spécifique – moins courante ou non universelle – elle sera disponible sous forme de plugin ou, dans le cas du noyau Linux, sous forme de module. Il y a peu de différence entre un plugin dans d’autres logiciels et les modules du noyau Linux. Cependant, le niveau auquel ils fonctionnent est beaucoup plus proche du matériel et du logiciel d’exploitation de base, plutôt qu’à la fin de la pile au niveau de l’utilisateur.
Par exemple, le pilote de votre carte graphique, en particulier si vous utilisez des pilotes NVidia, est chargé en tant que module Kernel. Lorsque vous installez le pilote, un module noyau est configuré et chargé (éventuellement au prochain redémarrage de votre système).
En revenant à lsmod
, qui devrait être inclus dans l’installation par défaut de votre système d’exploitation Linux, cet outil répertoriera un aperçu des modules du noyau actuellement disponibles.
lsmod: Premiers regards
De façon intéressante, lsmod
est un outil qui rend le contenu du (virtuel) /proc/modules
fichier en un contenu plus lisible par l’homme.
le /proc/modules
est un fichier virtuel de 0 octet qui, lorsqu’il est affiché avec par exemple cat
ou vi
, contiendra (ou mieux rendre) une liste des modules actuellement disponibles pour le noyau Linux sur le système où lsmod
est en cours d’exécution.
Commençons par vérifier le contenu du /proc/modules
fichier pour la présence d’un module Linux Kernel AHCI (Advanced Host Controller Interface) :
cat /proc/modules | grep ahci
Ici on utilise cat
afficher (rendre) le contenu de /proc/modules
, et ensuite utiliser grep
à grep pour le module AHCI. Notez que nous n’avons pas spécifié le -i
option (qui ferait une recherche insensible à la casse) pour grep
, comme la liste complète des modules /proc/modules
est uniquement en minuscules.
Nous pouvons voir à partir de la sortie fournie quels modules AHCI Linux Kernel sont actuellement disponibles. Sinon, la sortie semble un peu cryptique et pas très descriptive. Essayons lsmod
à la place maintenant.
lsmod | grep -E '^Module|ahci'
Ici, nous avons utilisé lsmod
, un outil sans options, et utilisé grep
pour saisir plusieurs résultats d’intérêt. le -E
L’option de grep nous permet de créer une liste de sélection/sélection (chaînes) d’éléments que nous voulons voir, tous séparés par un ou plusieurs symboles de tuyau (|
).
Nous recherchons donc ici tout ahci
occurrences (dans le deuxième sélecteur/chaîne de sélection), et toute ^Module
occurrences (dans le premier sélecteur/chaîne de sélection), où le ^
est une expression régulière (applicable au premier sélecteur uniquement), en sélectionnant le début d’une ligne, indiquant que nous voulons voir uniquement les résultats où le début de ligne est immédiatement suivi de ‘Module’ et ce serait notre première ligne d’en-tête.
Nous voyons la sortie maintenant bien rendue ; la première ligne (que notre grep
commande incluse comme grâce à la ^Module
sélecteur) et les deuxième et troisième lignes répertoriant les ahci
modules dont notre grep
sélectionné grâce au deuxième sélecteur.
Les sorties de la colonne d’en-tête nous indiquent ce que chaque colonne contient ; la première colonne le nom du module (Module), la seconde la taille est en octets (Taille), et la troisième colonne fournit un nombre de références (Utilisé par), ou en d’autres termes combien de fois un module est référencé (ce qui peut peut-être vaguement se traduire par utilisé) par le noyau.
Si le compteur de référence dans la troisième colonne est zéro, cela signifie que pendant que le module est disponible « dans »/au noyau, il n’est actuellement pas utilisé.
Astuce : si jamais vous voyez -2
à la sortie de lsmod
, vous voudrez peut-être vérifier lsmod montre -2 dans la colonne « Utilisé par » sur Stackexchange.
Plonger plus profondément avec info mod
Tandis que le lsmod
l’outil n’a pas d’options lui-même, nous pouvons utiliser un autre utilitaire en combinaison avec lsmod pour découvrir plus d’informations : modinfo
.
modinfo ahci -F 'description' modinfo ahci -F 'author'
Ici, nous avons utilisé le modinfo
commande pour obtenir plus d’informations sur le ahci
Module de noyau Linux. En particulier, nous avons utilisé le -F
possibilité de modinfo
pour sélectionner un domaine spécifique pour lequel nous aimerions connaître son contenu. Notez que si vous exécutez modinfo ahci
sans aucune option, vous verrez une liste complète de toutes les informations disponibles sur le ahci
Module noyau. Cette sortie est assez détaillée car elle inclut la signature des données clés, etc.
On aurait pu aussi utiliser grep
de la même manière que nous l’avons fait précédemment pour sélectionner les deux informations en une seule commande. Pour ce faire, nous utilisons modinfo ahci | grep -E 'description|author'
, qui rend la même sortie de deux lignes, bien que directement l’une sous l’autre.
Notez également que l’on pourrait à nouveau utiliser l’expression régulière '
pour sélectionner uniquement les chaînes de sortie qui commencent au début de la ligne (pour les deux champs recherchés), c’est-à-dire modinfo ahci | grep -E '^description|^author'
Contrairement à lsmod
, modinfo
a quelques autres options qui peuvent être intéressantes. Vérifier man modinfo
pour voir toutes les options disponibles.
Emballer
Dans cet article, nous avons exploré l’option sans option lsmod
outil et la sortie pratique qu’il nous fournit, nous montrant quels modules du noyau Linux sont disponibles et combien de fois chacun de ces modules du noyau est actuellement référencé (« utilisé ») par le noyau. Nous avons également examiné comment obtenir plus d’informations sur un module spécifique en utilisant le modinfo
commande sous Linux. Nous avons également examiné comment nous pouvons utiliser grep -E
pour obtenir deux informations à la fois en utilisant plusieurs chaînes de sélection à rechercher.
Si vous avez aimé lire cet article, consultez nos articles Comment utiliser ltrace pour suivre les appels de bibliothèque et Comment travailler avec les dépendances d’objets partagés (bibliothèque) dans Linux. Profitez!