Stellen Sie sich den Linux-Kernel als den Kernmotor eines Autos vor. Sie können Zubehör wie einen Dachgepäckträger oder ein neues Soundsystem hinzufügen, ohne den Motor selbst zu verändern. Dieses Zubehör kann bei Bedarf hinzugefügt oder entfernt werden. Der Linux-Kernel verwendet ein ähnliches Konzept mit Kernel-Modulen.
Was sind Kernel-Module
Also, was sind Kernel-Module? Es sind Codeabschnitte, die bei Bedarf in den Kernel geladen und aus ihm entladen werden können. Sie erweitern die Funktionalität des Kernels, ohne dass Sie den Kern-Kernel neu kompilieren oder das System neu starten müssen. Dieser modulare Ansatz ermöglicht es, Unterstützung für neue Hardware (wie eine neue WLAN-Karte) oder neue Softwarefunktionen (wie ein neues Dateisystem) dynamisch hinzuzufügen. Dies hält den Kern-Kernel schlank und ermöglicht gleichzeitig immense Flexibilität.
Geladene Module auflisten
Um eine Liste aller aktuell in den Speicher geladenen Kernel-Module anzuzeigen, können Sie den Befehl lsmod verwenden. Dieser gibt Ihnen eine Momentaufnahme der aktiven Module und ihrer Abhängigkeiten.
lsmod
Ein Kernel-Modul laden
Um ein Kernel-Modul zu laden, verwenden wir den Befehl modprobe. Um beispielsweise das Modul bluetooth zu laden, würden Sie Folgendes ausführen:
sudo modprobe bluetooth
Der Befehl modprobe ist intelligent; er sucht das Modul im Standardverzeichnis (/lib/modules/$(uname -r)/) und lädt auch alle anderen Module, von denen das Zielmodul abhängt.
Ein Kernel-Modul entladen
Wenn ein Modul nicht mehr benötigt wird, können Sie es entladen, um Systemressourcen freizugeben. Verwenden Sie das Flag -r mit modprobe, um ein Modul zu entfernen:
sudo modprobe -r bluetooth
Module beim Booten verwalten
Mit modprobe geladene Module sind temporär und verschwinden nach einem Neustart. Um Modulkonfigurationen dauerhaft zu speichern, können Sie Konfigurationsdateien im Verzeichnis /etc/modprobe.d/ erstellen.
Um ein Modul beim Booten mit bestimmten Optionen automatisch zu laden, erstellen Sie eine .conf-Datei. Wenn Sie beispielsweise ein hypothetisches Modul namens peanut_butter hätten und dessen Parameter type auf almond setzen wollten, würde Ihre Datei wie folgt aussehen:
# /etc/modprobe.d/peanutbutter.conf
options peanut_butter type=almond
Umgekehrt können Sie, um das Laden eines Moduls beim Booten zu verhindern (ein als Blacklisting bezeichneter Vorgang), das Schlüsselwort blacklist in einer Konfigurationsdatei verwenden:
# /etc/modprobe.d/peanutbutter.conf
blacklist peanut_butter
Diese Konfigurationsdateien ermöglichen eine detaillierte Steuerung darüber, welche Module beim Start Ihres Systems verfügbar sind.