Traditionell besaß FreeBSD einen monolithischen Kernel. Der Kernel war ein einziges großes Programm, das eine bestimmte Auswahl an Hardware unterstützte. Um das Kernelverhalten zu ändern, musste man einen neuen Kernel kompilieren und dann den neuen Kernel booten.
Heutzutage befinden sich die meisten Funktionen des FreeBSD-Kernels in Modulen, die je nach Bedarf dynamisch geladen und entladen werden können. Dies erlaubt es, einen laufenden Kernel anzupassen, um sofort neue Hardware und neue Funktionen zu unterstützen. Dies ist als modularer Kernel bekannt.
Gelegentlich ist es noch notwendig, eine statische Kernelkonfigurationen durchzuführen. In einigen Fällen ist die Funktion zu systemnah, um durch ein Modul realisiert zu werden. Andere Umgebungen verhindern vielleicht das Laden und Entladen von Kernelmodulen und erfordern, dass nur die benötigte Funktionalität statisch in den Kernel kompiliert wird.
Das Erstellen eines angepassten Kernels ist eines der
Rituale für erfahrene BSD-Benutzer. Obwohl dieser
Prozess recht viel Zeit in Anspruch nimmt, kann
er doch viele Vorteile für das FreeBSD-System bringen. Im
Gegensatz zum GENERIC
-Kernel, der eine
Vielzahl von Hardware unterstützen muss, kann ein angepasster
Kernel so eingeschränkt werden, dass er nur noch die Hardware
des Rechners unterstützt. Dies hat einige Vorteile:
Schnellerer Bootvorgang. Da der Kernel nur nach der Hardware des Systems sucht, kann sich die Zeit für einen Systemstart verkürzen.
Geringerer Speicherbedarf. Ein eigener Kernel
benötigt in der Regel weniger Speicher als ein
GENERIC
-Kernel durch das Entfernen von
Funktionen und Gerätetreibern. Das ist vorteilhaft, denn
der Kernel verweilt immer im RAM und verhindert dadurch,
dass dieser Speicher von Anwendungen genutzt wird. Deshalb
ist ein angepasster Kernel auf einem System mit wenig RAM
sinnvoll.
Zusätzliche Hardwareunterstützung. Ein
angepasster Kernel kann Unterstützung für
Geräte bieten, die im
GENERIC
-Kernel nicht enthalten
sind.
Bevor Sie einen angepassten Kernel erstellen, überlegen Sie sich bitte, warum Sie dies tun wollen. Wenn Sie lediglich eine bestimmte Hardwareunterstützung benötigen, existiert diese vielleicht schon als Kernelmodul.
Kernelmodule existieren in /boot/kernel
und können mit kldload(8) dynamisch in den laufenden Kernel
geladen werden. Die meisten Kerneltreiber verfügen über ein
ladbares Modul und eine Manualpage. Der drahtlose
Ethernet-Treiber ath(4) hat die folgenden Informationen in
seiner Manualpage:
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5): if_ath_load="YES"
Durch das Hinzufügen von
if_ath_load="YES"
in
/boot/loader.conf
wird das Modul dynamisch
beim Systemstart geladen.
In manchen Fällen gibt es kein entsprechendes Modul in
/boot/kernel
. Dies gilt insbesondere für
bestimmte Subsysteme.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.