Kern-Modul
Aus Fedorawiki.de
Ein Kern-Modul ist ein ladbares Stück Programm welches zum Kern hinzugefügt oder entfernt werden kann während der Kern in Betrieb ist. Es ist sinnvoll Gerätekontrollprogramme als Modul zu realisieren und nur dann zum Kern zu ergänzen wenn es benötigt wird. Ist das Gerät nicht angeschlossen wird das Modul nicht benötigt und nicht geladen. Mir sind keine Linux-Distributionen bekannt welche Module nicht nutzen. Module sparen Hauptspeicher in dem nur Module geladen werden die tatsächlich notwendig sind.
Zur Kontrolle von Modulen werden die Programme im Paket module-init-tools genutzt. Als Nachfolger für diese Programmsammlung ist kmod vorgesehen.
Kernmodulpakete tragen in Fedora den Präfix: kmod-*
Seit dem Ausgabesprung auf die Nummer 2.6 von 2.4 hat sich der Vorgang des "Ladens" eines Moduls drastisch verändert. Der Linker für die Module (Programmteil der Kern-Symbole auflöst und die Anordnung im Kern-Bereich des Hauptspeichers vornimmt) ist mittlerweile im Kern selbst zu finden. Was dazu führt das die hierfür notwendigen Programme und Aufgaben auf Nutzerseite deutlich geringer sind. Das Paket modutils ist nicht mehr notwendig und arbeitet auch nicht einwandfrei im 2.6er-Plus Kern.
Alle verfügbaren Linux-Module für den momentan gestarteten Linux liegen in einer Verzeichnisstruktur unterhalb von /lib/modules/`uname -r` und tragen die Endung .ko (kernel Object/Kern Objekt). Nach dem Systemstart werden die Module aus dieser Verzeichnisstruktur gelesen und im Hauptspeicher abgelegt. Linux spiegelt die Nutzung der Module im Verzeichnis /sys/module, welches ein Teil des virtuellen System-Dateisystems (sysfs) ist. Informationen über Speicherverbrauch und Abhängigkeiten der momentan geladenen Module können mit dem Programm lsmod angezeigt werden.
Möchten Sie ein ein Kernmodul in der Verzeichnisstruktur unterhalb von /lib/modules/`uname -r` finden können sie wie folgt vorgehen. Absichtlich wurde hier ein distributionsfremdes Kernmodul gewählt, nämlich das NVDIA-Kontrollprogramm aus RpmFusion.
$ lsmod | grep -i nvidia # Der Paramter -i ist in diesem Fall nicht notwendig, er bewirkt das grep Groß- und Kleinschreibung ignoriert. nvidia 10782328 54 $ cd /lib/modules/`uname -r` $find -iname nvidia.ko ./extra/nvidia/nvidia.ko