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.
Homepage - TCP/IP (C) Copyright 1999 Arnold Willemer