Ein Gerätetreiber ist eine Software, die einen bestimmten Gerätetyp betreibt oder steuert. Auf modernen Betriebssystemen mit monolithischem Kernel sind diese normalerweise Teil des Kernels. Viele monolithische Kernel, einschließlich Linux, sind modular aufgebaut, sodass ausführbare Module zur Laufzeit geladen werden können. Gerätetreiber nutzen diese Funktion häufig, obwohl nichts daran hindert, die Gerätetreiber in das Kernel-Image zu kompilieren.
Eine Gerätedatei ist eine Schnittstelle für einen Gerätetreiber, der in einem Dateisystem so erscheint, als wäre es eine gewöhnliche Datei. In Unix-ähnlichen Betriebssystemen sind diese normalerweise unter dem /dev
zu finden Verzeichnis und werden auch Geräteknoten genannt . Eine Gerätedatei kann Zeichengeräte darstellen , die Stream-Daten zeichenweise ausgeben oder Geräte blockieren die einen wahlfreien Zugriff auf Datenblöcke ermöglichen.
Geräteknoten werden vom mknod
erstellt Systemaufruf. Die vom Geräteknoten bereitgestellte Kernel-Ressource wird durch eine Haupt- und eine Nebennummer identifiziert. Typischerweise identifiziert die Major-Nummer den Gerätetreiber und die Minor-Nummer identifiziert ein bestimmtes Gerät, das der Treiber steuert.
Was die Gerätedatei zu enthalten scheint, hängt davon ab, was die Gerätetreiber durch die Gerätedatei verfügbar machen. Zum Beispiel die Zeichengerätedatei, die die Maus darstellt, /dev/input/mice
stellt die Bewegung der Maus als Zeichenstrom dar, während die Blockgerätdatei eine Festplatte darstellt, wie z. B. /dev/sda
, legt die adressierbaren Bereiche des Speichers des Geräts offen. Einige Gerätedateien nehmen auch Eingaben entgegen, sodass Benutzerbereichsanwendungen mit dem Gerät kommunizieren können, indem sie in seine Gerätedatei schreiben.