Changes
Page history
Update Informationen
authored
Jan 22, 2018
by
Christian Eckl
Hide whitespace changes
Inline
Side-by-side
Informationen.md
View page @
6d275082
# 1. Infor
a
mtionen über das Kernel-Modul
# 1. Inform
a
tionen über das Kernel-Modul
Ein Kernel-Modul (kurz "LKM" für engl: loadable kernel module) ist ein spezielles
Ein Kernel-Modul (kurz "LKM" für engl
.
: loadable kernel module) ist ein spezielles
Computerprogramm, das im laufenden Betrieb in den Kernel des Computers geladen
Computerprogramm, das im laufenden Betrieb in den Kernel des Computers geladen
und
entfernt
werden kann. In diesem Fall soll ein solches Modul für den Raspberry Pi
und
wieder entladen
werden kann. In diesem Fall soll ein solches Modul für den Raspberry Pi
Linux Kernel geschrieben werden. Verwendet wird hierzu die Sprache C.
Linux Kernel geschrieben werden. Verwendet wird hierzu die Sprache C.
### Wieso verwendet man ein Kernel-Modul?
### Wieso verwendet man ein Kernel-Modul?
Sinn des Kernel-Modules ist es im laufenden Betrieb einen Treiber für ein tempörär
Sinn des Kernel-Modules ist es im laufenden Betrieb einen Treiber für ein tempörär
benötigtes Device zu
L
aden und wenn es nicht gebraucht wird zu entladen. Diese Methode
benötigtes Device zu
l
aden und wenn es nicht gebraucht wird zu entladen. Diese Methode
verbraucht also nur dann System-Resourcen wenn das Modul geladen und benutzt wird.
verbraucht also nur dann System-Res
s
ourcen wenn das Modul geladen und benutzt wird.
Ein weiterer Vorteil ist das man das System nach dem Laden des Moduls nicht neustarten muss und
Ein weiterer Vorteil ist
,
das
s
man das System nach dem Laden des Moduls nicht neustarten muss und
das Gerät sofort einsatzbereit ist.
das Gerät sofort einsatzbereit ist.
Außerdem ist ein LKM leichter zu warten und debuggen als ein in den Kernel kompilierter Treiber
Außerdem ist ein LKM leichter zu warten und debuggen als ein in den Kernel kompilierter Treiber
.
## Für was verwendet man ein Kernel-Modul?
## Für was verwendet man ein Kernel-Modul?
Im Großen und Ganzen gibt es
6
Hauptanwedungsgebiete:
Im Großen und Ganzen gibt es
5
Hauptanwedungsgebiete:
-
Device driver: Ein Gerätetreiber ist nur für ein spezielles Gerät um mit dem Computer zu kommunizieren.
-
Device driver: Ein Gerätetreiber ist nur für ein spezielles Gerät
,
um mit dem Computer zu kommunizieren.
-
Filesystem driver: Ein Dateisystemtreiber interpretiert den Inhalt eines Dateisystems
-
Filesystem driver: Ein Dateisystemtreiber interpretiert den Inhalt eines Dateisystems
(das normalerweise der Inhalt eines Laufwerks ist) als Dateien und Verzeichnisse als solche.
(das normalerweise der Inhalt eines Laufwerks ist) als Dateien und Verzeichnisse als solche.
-
System calls: User-Space Programme verwenden Systemaufrufe um Informationen vom Kernel zu bekommen.
-
System calls: User-Space Programme verwenden Systemaufrufe um Informationen vom Kernel zu bekommen.
-
Network drivers: Ein Netzwerktreiber interpretiert Netzwerkprotkolle.
-
Network drivers: Ein Netzwerktreiber interpretiert Netzwerkprotkolle.
-
Executable interpreter: Linux kann viele Datei
v
ormate ausführen benötigt aber für jedes Format einen executable interpreter.
-
Executable interpreter: Linux kann viele Datei
f
ormate ausführen
,
benötigt aber für jedes Format einen executable interpreter.
Quelle: [Linux Loadable Kernel Module HOWTO] (http://tldp.org/HOWTO/Module-HOWTO/index.html)
Quelle: [Linux Loadable Kernel Module HOWTO] (http://tldp.org/HOWTO/Module-HOWTO/index.html)