LINUX: Kernel und Treiber
|
Willemers Informatik-Ecke
Der Kernel
Der Kernel befand sich unter UNIX traditionsgemäss im Wurzelverzeichnis unter dem
Namen vmunix.
Unter Linux heisst der Kernel vmlinux bzw. vmlinuz. Letzteres ist ein komprimierter
Kernel, der beim Booten dekomprimiert wird.
Generieren des Kernels
Unter UNIX ist das Neukompilieren des Kernels nicht so ungewöhnlich wie unter
anderen Systemen. Bei SCO beispielsweise wird dabei eigentlich nicht kompiliert
sondern gebunden, denn die Sourcen selbst sind nicht mitgeliefert.
Gründe für das Neugenerieren des Kernels können veränderte
Hardwareumgebungen sein oder die Änderung grundlegender Umgebungsgrössen.
So muss nicht jeder Kernel mit ISDN oder Ethernet umgehen können.
Es gibt Umgebungen, in denen ein System intensiv mit Dateien hantiert und
dazu viele Puffer benötigt oder das System ist als Router eingesetzt. Hier
müssen die Netztabellen grosszügiger ausgelegt sein.
Das Generieren besteht auf unterster Ebene im Starten eines make-Befehls im richtigen
Verzeichnis. Beispielsweise wechselt man unter LINUX in das Verzeichnis /usr/src/linux.
Hier werden nacheinander mehrere make-Aufrufe abgesetzt, um einen neuen Kernel zu generieren.
- make config
-
Damit wird die Konfiguration bestimmt. Nacheinander werden die Parameter abgefragt und
eingetragen.
- make dep
-
Die Abhängigkeiten der Module werden bestimmt. So werden nur die Module eingebunden,
die bei make config auch angewählt wurden.
- make linuz
-
Bildet den Kernel. Ursprünglich hiess der Aufruf make linux.
Da inzwischen nur noch mit dem komprimierten Kernel gearbeitet wird, wird dieser Aufruf
nicht mehr unterstützt.
- make zlilo
-
Dieser Aufruf erzeugt einen Kernel so, dass er in die Bootumgebung eingebunden wird.
Module
Insbesondere wenn Treiber selten gebraucht werden, sind sie
im Kernel nicht besonders gut plaziert. Solche Treiber lassen sich
unter LINUX als Module handhaben. Sie werden zur Laufzeit geladen.
Zu ihrer Verwaltung gibt es einen Satz Befehle:
- lsmod
-
Erstellt eine Liste aller geladenen Module
- insmod Treibername
-
Ein Modul wird geladen. Es können noch weitere Optionen
angegeben werden.
- modprobe Treibername
-
Ein Modul wird geladen
- rmmod Treibername
-
Ein Modul wird heruntergefahren.
In der Datei /etc/conf.modules stehen die Informationen zu
den verschiedenen Modulen.