next up previous contents
Next: Erstellung von Gerätetreibern als Up: No Title Previous: Interruptservicefunktion

Linux Gerätetreiber

  Für einen Linux Gerätetreiber sind prinzipiell zwei Formen denkbar:


Im Kernel integrierte Treiber
Diese werden mit dem Kernel geladen und sind somit jederzeit benutzbar. Alle Treiber, die zur Initialisierung des Linux-System benötigt werden, müssen im Kernel integriert sein.


Ladbare Gerätetreiber
Diese Treiber werden erst während der Laufzeit des Linux-Systems geladen. Dazu dienen die Programme aus dem Modutils-Paket, welches man als modules-2.0.0.tar.gz auf den bekannten Linux-Servern finden kann. Mit deren Hilfe kann man einzelne Treiber laden und auch wieder entfernen. Die geladenen Treiber werden in die Kernelstrukturen eingebunden und können dann alle Kernelfunktionen benutzen. Nach dem Registrieren der ladbaren Treiber durch den Kernel besteht faktisch kein Unterschied mehr zu den im Kernel integrierten. Die ladbaren Treiber können auch wieder zur Laufzeit entfernt werden, wenn sie nicht mehr in Gebrauch sind. Dies spart zum einen Speicher. Viel wichtiger ist aber, daß man dadurch Treiber zur Laufzeit des Systems ersetzen kann, was bei der Treiberentwicklung ein sehr großer Vorteil ist.

Aus diesen Gründen stehen in neueren Kerneln fast alle integrierten Treiber von Linux auch als ladbares Modul zur Verfügung. Beim Übersetzen des Kernels kann man wählen, in welcher Form die Treiber bereitgestellt werden. Außerdem gibt es noch das Programm kerneld, welches in Verbindung mit dem Kernel das automatische Laden von Kernel-Modulen ermöglicht. Im Kernel selber sind dann nur noch die Treiber, die zum Systemstart benötigt werden. Alle anderen werden bei Bedarf geladen, z.B. beim Zugriff auf das Diskettenlaufwerk oder ein bestimmtes Dateisystem. Wenn der Treiber dann einige Zeit nicht mehr benutzt wird, wird er automatisch wieder entfernt. Dies ermöglicht sehr kleine Kernel mit voller Funktionalität.

Die Treiber für spezielle externe Hardware, z.B. Scanner oder andere Controller, werden immer als Modul ausgeführt. Ein Beispiel hierfür ist der in Kap. gif beschriebene Treiber für einen Joystick oder auch der in Kap. gif beschriebene Treiber für die Schnittstellenkarte des Pendelsystems.




next up previous contents
Next: Erstellung von Gerätetreibern als Up: No Title Previous: Interruptservicefunktion

Marius Heuler
Tue Jan 7 12:11:50 MET 1997