So verwenden Sie lsmod in Linux (mit einem praktischen Beispiel)

0
254

Der Linux-Kernel ist für die meisten ein Rätsel, muss es aber nicht sein! Willkommen in der aufregenden Welt von lsmod, einem Tool, mit dem Sie sehen können, welche Module der Kernel verwendet und vieles mehr!

Was ist lsmod ?

Um lsmod zu erklären, das Tool, mit dem man Module im Linux-Kernel auflisten kann, muss man zuerst verstehen, was ein Modul ist. Ein Linux-Modul ist ein modularer Code (der in einem kompilierten Format ausgeführt wird), der nach Belieben aus dem Linux-Kernel geladen oder entladen werden kann. Der Hauptvorteil der Verwendung solcher Module ist ihre Modularität und Granularität.

Sie können sich Kernel-Module als Plugins in anderer Software vorstellen. Wann immer Sie ein bestimmtes – weniger verbreitet oder nicht universell – Funktionalität wird es als Plugin oder im Fall des Linux-Kernels als Modul zur Verfügung stehen. Es gibt kaum einen Unterschied zwischen einem Plugin in anderer Software und Linux-Kernel-Modulen. Die Ebene, auf der sie arbeiten, ist jedoch viel näher an der Hardware und der Kernbetriebssoftware als am Ende des Stapels auf Benutzerebene.

Ihr Grafikkartentreiber – insbesondere wenn Sie NVidia-Treiber verwenden – wird als Kernel-Modul geladen. Wenn Sie den Treiber installieren, wird ein Kernel-Modul konfiguriert und geladen (möglicherweise beim nächsten Neustart Ihres Systems).

Zurück zu lsmod, das in der Standardinstallation Ihres Linux-Betriebssystems enthalten sein sollte, Dieses Tool listet eine Übersicht der derzeit verfügbaren Kernel-Module auf.

lsmod: First Looks

Interessanterweise ist lsmod ein Tool, das den Inhalt der (virtuellen) /proc/modules-Datei in besser lesbaren Inhalt umwandelt.

Werbung

Die Datei /proc/modules ist eine virtuelle 0-Byte-Datei, die, wenn sie beispielsweise mit cat oder vi angezeigt wird, eine Liste der Module enthält (oder besser rendert), die derzeit für den Linux-Kernel auf dem System, auf dem lsmod ausgeführt wird.

Beginnen wir damit, den Inhalt der Datei /proc/modules auf das Vorhandensein eines AHCI-Linux-Kernelmoduls (Advanced Host Controller Interface) zu überprüfen:

cat /proc/modules | grep ahci

Hier verwenden wir cat zur Anzeige (render) den Inhalt von /proc/modules und verwenden Sie anschließend grep to grep für das AHCI-Modul. Beachten Sie, dass wir die Option -i (die eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchführen würde) nicht für grep angegeben haben, da die vollständige Liste der Module /proc/modules nur in Kleinbuchstaben geschrieben ist.

Wir können dies an der Ausgabe sehen vorausgesetzt, welche AHCI-Linux-Kernel-Module derzeit verfügbar sind. Ansonsten sieht die Ausgabe etwas kryptisch und wenig aussagekräftig aus. Versuchen wir es stattdessen jetzt mit lsmod.

lsmod | grep -E '^Modul|ahci'

Hier haben wir lsmod, ein Tool ohne Optionen, und grep verwendet, um mehrere Ergebnisse zu erhalten von Interesse. Die Option -E für grep ermöglicht es uns, eine Selektor-/Auswahlliste (Strings) von Elementen zu erstellen, die wir sehen möchten, die alle durch ein oder mehrere Pipe-Symbole (|) getrennt sind.

Werbung

Hier suchen wir also nach allen ahci-Vorkommen (im zweiten Selektor/Auswahlstring) und allen ^Module-Vorkommen (im ersten Selektor/Auswahlstring), wobei ^ ein regulärer Ausdruck ist (gilt nur für den ersten Selektor), Auswahl des Starts einer Zeile, was darauf hinweist, dass nur Ergebnisse angezeigt werden sollen, bei denen auf den Start der Zeile unmittelbar ‘Modul’ und das wäre unsere erste Kopfzeile.

Wir sehen die Ausgabe jetzt schön gerendert; die erste Zeile (die unser grep-Befehl dank des ^Module-Selektors enthält) und die zweite und dritte Zeile, die die ahci-Module auflisten, die unser grep aufgrund des zweiten Selektors ausgewählt hat.

Die Ausgaben der Header-Spalte sagen uns was jede Spalte enthält; die erste Spalte den Modulnamen (Module), die zweite die Größe ist Bytes (Size) und die dritte Spalte liefert einen Referenzzähler ( Benutzt von), oder anders ausgedrückt, wie oft ein Modul vom Kernel referenziert wird (was vielleicht vage in verwendet übersetzt werden kann).

Wenn der Referenzzähler in der dritten Spalte null ist, bedeutet dies, dass das Modul “in” verfügbar ist/zum Kernel, es wird derzeit nicht verwendet.

Tipp: Wenn Sie jemals -2 in der Ausgabe von lsmod sehen, sollten Sie lsmod zeigt -2 in der “Used by& #8221; Spalte auf Stackexchange.

Tiefer eintauchen mit modinfo

Während das lsmod-Tool selbst keine Optionen hat, wir können ein weiteres Dienstprogramm in Kombination mit lsmod verwenden, um weitere Informationen zu erhalten: modinfo.

modinfo ahci -F 'Beschreibung' modinfo ahci -F 'Autor'

Werbung

Hier haben wir den Befehl modinfo verwendet, um mehr Informationen über das ahci Linux Kernel-Modul zu erhalten. Insbesondere haben wir die Option -F für modinfo verwendet, um ein bestimmtes Feld auszuwählen, dessen Inhalt wir erfahren möchten. Beachten Sie, dass Sie, wenn Sie modinfo ahci ohne Optionen ausführen, eine vollständige Liste aller verfügbaren Informationen zum ahci-Kernelmodul sehen. Diese Ausgabe ist ziemlich ausführlich, da sie das Signieren von Schlüsseldaten usw. umfasst.

Wir hätten auch grep ähnlich wie zuvor verwenden können, um beide Informationen in einem einzigen Befehl auszuwählen. Dazu verwenden wir modinfo ahci | grep -E 'description|author', die dieselbe Ausgabe von zwei Zeilen rendert, wenn auch direkt untereinander.

Beachten Sie auch, dass man wieder den regulären Ausdruck ' verwenden könnte, um nur die Ausgabestrings auszuwählen, die am Anfang der Zeile beginnen (für beide Felder, nach denen gesucht wird), also modinfo ahci | grep -E '^description|^author'

Im Gegensatz zu lsmod hat modinfo einige weitere Optionen, die von Interesse sein könnten. Checkout man modinfoto alle verfügbaren Optionen anzeigen.

Zusammenfassung

In diesem Artikel haben wir das lsmod-Tool ohne Optionen und die eine praktische Ausgabe, die es uns liefert, die uns zeigt, welche Linux-Kernel-Module verfügbar sind und wie oft jedes dieser Kernel-Module derzeit vom Kernel referenziert (“verwendet”) wird. Wir haben uns auch angesehen, wie Sie mit dem Befehl modinfo in Linux weitere Informationen zu einem bestimmten Modul erhalten. Wir haben uns auch angesehen, wie wir grep -E verwenden können, um zwei Informationen gleichzeitig zu erhalten, indem wir mehrere Auswahlstrings zum Scannen verwenden.

Wenn Ihnen das Lesen dieses Artikels gefallen hat, werfen Sie einen Blick auf unsere Anleitung ltrace zum Verfolgen von Bibliotheksaufrufen und zum Arbeiten mit Shared Object (Library)-Abhängigkeiten in Linux-Artikeln. Viel Spaß!