Was sind Linux-Kernelmodule?

711
Phenom

Ich habe mich gefragt, ob jemand jemandem, der aus Windows kommt, erklären kann, was Linux-Kernel-Module sind?

1

3 Antworten auf die Frage

3
Matthew Flaschen

Es ist eine Möglichkeit, Code dynamisch in den Linux-Kernel zu laden, den untersten Teil des GNU / Linux-Betriebssystems. Windows-Gerätetreiber werden häufig für ähnliche Zwecke verwendet. Sie können diese etwas alte FAQ lesen . Einige Dinge haben sich geändert, aber die Grundidee bleibt gleich.

Ist das also wie ein Windows-Gerätetreiber? Phenom vor 14 Jahren 0
Ja, viele Module werden für Gerätetreiber verwendet. Es gibt jedoch andere Zwecke wie Dateisysteme. Matthew Flaschen vor 14 Jahren 0
2
Kenny Rasschaert

Kernelmodule sind eigenständige Codeteile, die in den Kernel geladen werden, um Unterstützung für bestimmte Hardware bereitzustellen.

Zum Beispiel kann der Linux-Kernel selbst keine serielle Schnittstelle (RS-232) verwenden, aber wenn Sie das entsprechende Kernel-Modul laden, ist dies möglich.

Der lsmodBefehl zeigt eine Liste der aktuell geladenen Kernelmodule an.

1
LawrenceC

Linux-Kernel-Module entsprechen in ihrem Konzept den Windows-Gerätetreibern.

Damit ein Teil der Hardware funktioniert, benötigen Sie einen Treiber für Windows und ein Gerätetreiber-Kernelmodul für Linux.

Gerätetreiber müssen direkt auf die Hardware zugreifen und daher im Kernelmodus laufen. Normale Benutzeranwendungen werden im Benutzermodus ausgeführt. Ein Benutzermodusprogramm verfügt über den Schutz der MMU der CPU und kann den Betrieb eines anderen Benutzermodusprogramms oder von Elementen, die im Kernelmodus ausgeführt werden, nicht stören. Dinge, die im Kernel-Modus laufen, verfügen nicht über diesen Schutz, können aber direkt auf Hardware zugreifen. Deshalb werden sie Kernelmodule genannt.

Sie können Ihren eigenen Linux-Kernel erstellen und Module in den Kernel integrieren. Sie sind dann keine Module mehr und gehören zum Kernel. Normalerweise ist es von Vorteil, nur eine kleine Anzahl von Treibern zu installieren, die zum Booten benötigt werden, und die Hardwareerkennung den Rest der benötigten Daten laden zu lassen, obwohl Sie einen vollständig "statischen" Kernel erstellen können, der nicht auf das Laden beliebiger Module angewiesen ist.