5.2 Die Gerätedateinummern
 
Für Sie als Programmierer und auch für den Anwender stellt eine solche Gerätedatei im Verzeichnis /dev eine Schnittstelle zum eigentlichen Treiber der dazugehörenden Gerätedatei dar. Jegliche Aktion mit der Gerätedatei (schreiben, lesen, teilweise auch steuern) wird dann an den zuständigen Treiber weitergeleitet.
Damit eine Gerätedatei weiß, welcher Treiber für sie zuständig ist, enthält diese eine Nummer – die major Nummer – die Treibernummer des Systems. Z. B. ist die major Nummer der ersten IDE-Festplatte 3:
---[Linux]---
$ ls -l /dev/hda /dev/hda1
brw-rw---- 1 root disk 3, 0 2003–03–14 14:07 /dev/hda
brw-rw---- 1 root disk 3, 1 2003–03–14 14:07 /dev/hda1
---[*BSD]---
$ ls -l /dev/ad0 /dev/ad0s1
crw-r----- 1 root operator 116, 0x00010002 Aug 19 /dev/ad0
crw-r----- 1 root operator 116, 0x00020002 Aug 19 /dev/ad0s1
Wenn Sie sich das komplette /dev-Verzeichnis auflisten lassen, fällt Ihnen sicherlich auch auf, dass viele Gerätedateien über die gleiche major Nummer verfügen. Dabei interagieren die Gerätedateien über den gleichen Treiber mit dem Betriebssystem. Dabei muss es nicht sein, dass eine andere major Nummer ein anderes Gerät bezeichnet. Bestes Beispiel: Die serielle Schnittstelle verfügt über mehrere Gerätenummern – obwohl es sich um ein und dieselbe Schnittstelle handelt. Der Unterschied ist also nicht das Gerät, sondern, wie schon erwähnt, der Treiber. Mit einem Treiber wird z. B. auf den Terminal zugegriffen, während mit dem anderen Treiber auf das Modem zugegriffen wird.
Jetzt haben Sie zwar für ein Gerät mit der major Nummer einen Treiber, aber häufig gibt es von einem Gerät der gleichen Bauart mehrere, die im Einsatz sind. Bestes Beispiel sind mehrere Festplatten oder Partitionen in Ihrem Rechner. Da die Festplatten zwar alle denselben Treiber verwenden, müssen diese dennoch voneinander unterschieden werden. Um dies zu realisieren, wurde die minor Nummer gleich mit eingeführt. Die minor Nummer befindet sich gleich rechts neben der major Nummer. Anhand dieser Nummer weiß der Treiber jetzt, welche Festplatte oder Partition er bedienen soll.
|