next up previous contents index
Next: Peripherie Up: Das Verzeichnis /dev Previous: Der Arbeitsspeicher

Runde Scheiben

Als Ergänzung und Erweiterung des Arbeitsspeichers haben alle PCs Massenspeicher, auf denen Daten nicht flüchtig bereitgehalten werden. Um einen direkten Zugriff auf diese Daten zu haben, werden sie in kleine Blöcke zerteilt (typischerweise 512 bis 2048 Bytes) und auf rotierenden Datenträgern gespeichert.

/dev/fd*

     

Die Dateien /dev/fd* repräsentieren die Diskettenlaufwerke (floppy disks). Linux kann ein oder zwei Floppycontroler mit jeweils zwei Diskettenlauwerken, zusammen also maximal vier Laufwerke, verwalten.

Da die Diskettenlaufwerke in der Regel nicht zur alltäglichen Arbeit mit dem Computer benötigt werden, kann der Floppytreiber auch als Laufzeitmodul nur im Bedarfsfall geladen werden. Auf diese Weise wird der Kernel kleiner und der sonst vom Floppytreiber belegte Arbeitsspeicher bleibt normalerweise frei.

Der Linux-Kernel hat die erforderlichen Parameter zur Verarbeitung von 31 verschiedenen Diskettenformaten gespeichert. Davon sind 11 Formate für 5 1/4 Zoll Disketten, 5 Formate für ED 3,5 Zoll Disketten und die restlichen 15 Formate für normale 3,5 Zoll Disketten.

  
Table: Die 31 im Kernel gespeicherten Floppyformate

Jedes der in der Tabelle aufgeführten Diskettenformate ist über eine Gerätedatei ansprechbar. Hauptgerätenummer für alle Floppydevices ist 2. Die Untergerätenummer (minor device number) für ein bestimmtes Format kann durch die folgende Formel errechnet werden:

Minor = Formatnummer * 4 + 128 * Controllernummer + Laufwerkseinheit

Die Formatnummer steht in der zweiten Spalte der Tabelle, die Controllernummer ist 0 für den ersten Floppycontroller, 1 für den zweiten und die Laufwerkseinheit ist 0 für Lauwerk A: und 1 für Laufwerk B:.

Die Gerätedateien mit der Formatnummer 0 ( /dev/fd0, /dev/fd1...) sind nicht für ein spezielles Diskettenformat programmiert. Beim öffnen dieser Dateien versucht der Kernel, das Diskettenformat automatisch zu erkennen.

Bei gleicher Bauart des Mediums unterscheiden sich die Formate vor allem in der Anzahl der Spuren und der Sektoren pro Spur. Da allen Diskettenformaten die gleiche Sektorgröße von 512 Byte zugrunde liegt, unterscheiden sich die Diskettenformate zwangsläufig in ihrer Datenkapazität.

Die gängigen Standardformate für Disketten enthalten 80 Spuren. Alle modernen Diskettenlaufwerke können aber problemlos 82 Spuren bearbeiten, manche sogar 83. Die Kapazität einer Diskette läßt sich also erhöhen, indem zwei oder drei zusätzliche Spuren formatiert werden.

Eine 3,5 Zoll Diskette wird üblicherweise mit 18 Sektoren pro Spur formatiert.gif Ohne die einzelnen Bytes dichter zu packen können bis zu 21 Sektoren auf eine Spur geschrieben werden, indem der Abstand zwischen den Sektoren verringert wird. Um noch weitere Sektoren hinzuzufügen, können sie in Gruppengif zusammengefaßt und gemeinsam verwaltet werden. Durch die eingesparten Verwaltungsdaten kann maximal das Aquivalent von 24 normalen Sektoren auf einer Spur untergebracht werden. Bei Sektorzahlen ab 21 sinkt die Schreib-/Lesegeschwindigkeit weil die Sektoren nicht in monotoner Folge hintereinander geschrieben werden können. Indem jeder zweite Sektor übersprungen wird (interleave) ist sichergestellt, daß die Daten eines gerade gelesenen Sektors verarbeitet sind, bevor der nächste Sektor beim Schreib-/Lesekopf ankommt.

Bei 5 1/4 Zoll Disketten ist die übliche Sektorenzahl 15, sie kann auf 18 beziehungsweise 20 Sektoren erhöht werden.

Beim Einlegen einer neuen Diskette kann die Anzahl der Spuren nicht in einer angemessenen Zeit ermittelt werden, deshalb werden Formate mit mehr als 80 Spuren nicht automatisch erkannt. Das gilt auch für die im Kernel gespeicherten Formate 12-18. Diese Formate können anstelle der unspezifischen Gerätedatei ( /dev/fd0...) über die entsprechende spezielle Gerätedatei angesprochen werden.

Für die dem Kernel unbekannten Formate besteht die Möglichkeit, die notwendigen Parameter mit dem Programm setfdprm der Diskette entsprechend zu setzen. Bei Verwendung der mtools zum Lesen und Schreiben auf DOS-formatierten Disketten werden alle möglichen Diskettenformate anhand der im Dateisystem gespeicherten Informationen automatisch erkannt und gesetzt.

Die Diskettenlaufwerke sind normalerweise für alle Anwender beschreibbar, indem entweder die Gerätedateien selbst den Schreibzugriff erlauben, oder indem die schreibenden Programme (beispielsweise die mtools das SUID oder SGID Bit gesetzt haben, so daß der Anwender zur Laufzeit des Programms die Privilegien des Dateieigentümers oder der Gruppe hat.

Das mount-Kommando ermöglicht der Systemverwalterin, durch den Eintrag der user Option für mount in der Datei /etc/fstab jedem Systembenutzer das Einbinden eigener Disketten in das allgemeine Dateisystem zu erlauben. Normalerweise ist es aus Gründen der Systemsicherheit nur der Superuserin erlaubt, das Dateisystem zu verändern (-> mount).

   

/ dev/hd*

   

Die Dateien /dev/hd* repräsentieren die Geräte am IDE-Controller, also die AT-BUS Festplatten und die ATAPI CD-ROMs.

Linux kann zwei Controller mit insgesamt vier Geräten verwalten. Der erste Controller benutzt die Hauptgerätenummer 3, der zweite wird automatisch erkannt und belegt die Haüptgerätenummer 22. Ausserdem belegt der zweite Controller einen eigenen Interrupt (üblicherweise IRQ15) und zusätzliche IO-Ports.

Die ''rohen'' Geräte werden als /dev/hda bis /dev/hdd angesprochen. Bei Festplatten muß mit diesen Devices besonders vorsichtig umgegangen werden, sie sollten nur mit fdisk oder anderen speziell dafür vorgesehenen Programmen bearbeitet werden. Eine versehentliche Änderung des ersten Datenblockes auf diesem Device vernichtet die Partitionstabelle und macht alle Daten auf der Festplatte bis auf weiteres unbrauchbar.

Die einzelnen Partitionen der Festplatten werden über die Untergerätenummern ausgewählt. Die Gerätedateien mit der Erweiterung 1-4 bezeichnen die primären Partitionen, höhere Zahlen bezeichnen logische Partitionen.

Um den Systembenutzern den unberechtigten Zugriff auf die Daten im Dateisystem nicht über eine Hintertür zu ermöglichen, dürfen alle Festplattendevices nur mit Rootpermissions gelesen oder beschrieben werden. Den Usern steht dann nur der kontrollierte Zugriff über das Dateisystem offen.

Eine CD-ROM wird nicht in Partitionen unterteilt. Ein ATAPI-Laufwerk als erstes Gerät am zweiten Controller wird deshalb nur über die Gerätedatei /dev/hdc angesprochen. Wenn die CD ein ISO-9660 Dateisystem enthält, kann sie mit dieser Gerätedatei ins Dateisystem eingebunden werden.

  

/dev/mcd

    

Die Datei /dev/mcd steht für ein Mitsumi CD-ROM Laufwerk. Es werden sowohl die einfachen als auch die Doublespinlaufwerke unterstützt.gif

  

/dev/sd*

 

Die Dateien /dev/sd* bilden die SCSI Festplatten ab. Die Major Device Nummer für die SCSI Festplatten ist 8. Die einzelnen Festplatten werden in Schritten zu 16 Minor Device Nummern für die Partitionen angesprochen. Die Namensgebung entspricht dem System bei den anderen Festplatten: ein Buchstabe für die Festplatte und eine Zahl für die Partition.

/dev/sonycd

  Diese Gerätedatei repräsentiert das Sony CDU-31A CD-ROM Laufwerk.

/dev/sr?

Bei diesen Dateien handelt es sich um die Gerätedateien für die SCSI CD-ROMs.

/dev/xd*

  Der Linux-Kernel unterstützt auch 8-Bit XT-Festplattencontroller. Die Festplatten und Partitionen sind nach dem gleichen Schema benannt wie die AT-Bus Platten.



next up previous contents index
Next: Peripherie Up: Das Verzeichnis /dev Previous: Der Arbeitsspeicher



Linux Anwenderhandbuch -- Copyright 1993, 1994, 1995 S. Hetze, D. Hohndel, O. Kirch, M. Müller