|
Bevor man beginnt mit Geräten wie Festplatte oder CD-ROM zu arbeiten, muss man wissen, wie man das gewünschte Gerät überhaupt anspricht. Dies geschieht unter Linux mittels Gerätedateien. Programme nutzen Gerätedateien zu I/O-Operationen, welche dann vom Kernel an die eigentlichen Gerätetreiber weitergeleitet werden.
Grundsätzlich wird unter Linux zwischen zwei Gerätedateitypen unterschieden. Den Character-Devices und den Block-Devices. Zu welcher Gruppe eine Gerätedatei gehört kann man daran erkennen, dass Character-Devices bei den Dateirechten mit einem c beginnen und Block-Devices mit einem b. Zu den Character-Devices gehören beispielsweise die Maus und die USB-Schnittstelle. Zu den Block-Devices zählen unter anderem Festplatten und CD/DVD-ROMs, also Datenträger.
Neben den oben aufgeführten Gerätedateien existieren im Verzeichnis /dev/ noch weitere Dateien für anderweitige Geräte, die nicht direkt unter Gerätedateien fallen. Dazu zählen z.B. virtuelle Geräte, wofür keine physichen Geräte existieren. Wichtige und oft verwendete Vertreter sind /dev/null und /dev/zero.
Alle Gerätedateien die Linux zur Verfügung stehen, befinden sich im Verzeichnis /dev/. Einen Überblick über die verfügbaren Gerätedateien erhält man mit folgendem Befehl:
Mit der Leertaste kann man dann seitenweise durch die Ausgabe blättern, da sie sehr umfangreich ausfallen kann. Dies hängt mit dem verwendeten System zur Einbindung neuer Geräte zusammen. Im Laufe der Kernelentwicklung wurde das System einige Male geändert, damit die Einbindung so automatisiert und übersichtlich wie möglich erfolgen kann. Wurden früher unzählige Gerätedateien vorsorglich angelegt, so befinden sich in aktuellen Systemen mit dem Einbindungssystem udev lediglich die physisch vorhandenen Gerätedateien, sowie einige virtuelle.
Alle Gerätedateien beginnen mit Buchstaben und enden in der Regel mit Zahlen. Die Buchstaben folgen einem festen Regelwerk, welches nachstehend bei den Block-Devices durch einige Beispiele erläutert wird:
-
fd = Diskettenlaufwerk.
-
hda = Erste Festplatte oder CD/DVD am ersten IDE Controller (Primary Master).
-
hdb = Zweite Festplatte oder CD/DVD am ersten IDE Controller (Primary Slave).
-
hdc = Erste Festplatte oder CD/DVD am zweiten IDE Controller (Secondary Master).
-
hdd = Zweite Festplatte oder CD/DVD am zweiten IDE Controller (Secondary Slave).
-
sda = Erste Festplatte oder CD/DVD am SCSI Strang, SATA-Geräte oder USB-Geräte.
-
sdb = Zweite Festplatte oder CD/DVD am SCSI Strang, SATA-Geräte oder USB-Geräte. unsw.
Anmerkung: hdx entspricht der Verwendung von IDE-Treibern, respektive sdx den von SCSI/SATA-Treibern. Bei neueren Distributionen kann es sein, dass auch IDE-Geräte über die SCSI/SATA-Treiber angesprochen werden. Diese können mittlerweile gleichwertig oder sogar effizienter mit IDE-Geräten umgehen. Die Folge ist, dass auch IDE-Geräte über sdx-Gerätedateien angesprochen werden.
Ist ein Datenträger in mehrere Bereiche (Partitionen) aufgeteilt, führt dies zu einer Namenserweiterung der Gerätedateien:
- Die erste primäre Partition einer Festplatte (IDE oder SCSI) ist die 1.
- Die zweite primäre Partition einer Festplatte (IDE oder SCSI) ist die 2.
- Die dritte primäre Partition einer Festplatte (IDE oder SCSI) ist die 3.
- Die vierte primäre Partition einer Festplatte (IDE oder SCSI) ist die 4.
- Jede Festplatte kann max. eine erweiterte Partition haben. 1 - 4, je nachdem welche noch vefügbar ist.
Auf erweiterte Partitionen kann man nicht zugreifen. Sie dienen als eine Art Container für weitere logische Laufwerke.
- Das erste logische Laufwerk in einer erweiterten Partition einer Festplatte (IDE oder SCSI) ist die 5.
- Das zweite logische Laufwerk in einer erweiterten Partition einer Festplatte (IDE oder SCSI) ist die 6.
unsw..
- CDs/DVDs haben nur eine Partition. Daher werden sie direkt über die Laufwerksbezeichnung hda, sda, unsw. angesprochen.
- Disketten haben nur eine Partition. Die Partitionen werden direkt über die Laufwerke fd0 bis fd4 angesprochen.
Zur praktischen Verdeutlichung wurde eine Musterfestplatte erstellt. Diese ist als Master am zweiten IDE Controller angeschlossen (hdc) und enthält 2 primäre Partitionen (hdc1 und hdc2), sowie eine erweiterte Partition (hdc3) mit 3 logischen Lafwerken (hdc5, hdc6 und hdc7). Zusätzlich erkennt man die System-Festplatte, von der Linux gestartet wird. Diese ist als Master am ersten IDE Controller angeschlossen (hda) und enthält 2 primäre Partitionen (hda1 und hda2).
Möchte man sich nun die verfügbaren Partitionen anschauen, benutzt man folgenden Befehl:
...was beim Mustersystem zu folgender Ausgabe führt...
Disk /dev/hdc: 20.4 GB, 20416757760 bytes 255 heads, 63 sectors/track, 2482 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdcl 1 366 2939863+ 83 Linux /dev/hdc2 367 732 2939895 83 Linux /dev/hdc3 733 2482 14056875 5 Extended /dev/hdc5 733 1341 4891761 83 Linux /dev/hdc6 1342 1950 4891761 83 Linux /dev/hdc7 1951 2482 4273258+ 83 Linux Disk /dev/hda: 10.1 GB, 10141286400 bytes 16 heads, 63 sectors/track, 19650 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdal 1 3876 1953472+ 82 Linux swap /dev/hda2 * 3877 19650 7950096 83 Linux
Hier werden alle vom System erkannten, also physisch angeschlossenen Block-Devices aufgelistet. Die Start- und Endblöcke geben dabei die Position der Partitionen an und eben genau diesen sind Gerätedateien zugeordnet.
Weitere Informationen:
- Neben den oben aufgeführten Gerätedateien existieren im Verzeichnis /dev/ noch weitere Dateien für anderweitige Geräte, die wie virtuelle Geräte nicht direkt unter Gerätedateien fallen. Dazu zählen die Socket-Devices, die mit einem s gekenzeichnet sind. Diese werden direkt zwischen unterschiedlichen Prozessen genutzt. Ein Beispiel dafür ist /dev/log für den Syslog-Daemon.
|