next up previous contents index
Next: Die Konfigurationsdateien im Verzeichnis Up: Reise durch's Dateisystem Previous: Die Binärverzeichnisse

Subsections


Die Gerätedateien im Verzeichnis /dev

  

Eines der Charakteristika von Linux ist die vollständige Abschirmung der Hardware- von der Benutzerebene. Wann immer ein Anwenderprogramm Daten an ein angeschlossenes Gerät oder eine Hardwarekomponente (Device) schicken oder von dort lesen will, muß es eine Spezialdatei öffnen und die Daten in diese Datei schreiben oder aus dieser Datei lesen.

Die Systemverwalterin hat die gleichen Möglichkeiten, Zugriffsrechte auf die Gerätedateien zu erteilen oder zu verweigern wie bei allen anderen Dateien auch. Indem nur bestimmten Benutzern, beispielsweise Dämonprozessen, der Zugriff auf kritische Gerätedateien erlaubt wird, lassen sich bereits viele Sicherheitsrisiken und Blockadesituationen verhindern. Außerdem kann der Gerätetreiber im Kernel konkurrierende Zugriffe mehrerer Programme auf ein Gerät verhindern.

Ein weiterer entscheidender Vorteil dieses auf den ersten Blick vielleicht etwas restriktiv anmutenden Mechanismus ist die Fähigkeit des Kernels, Prozesse bis zum Eintreten eines Hardwareereignisses in Schlaf zu versetzen. Auf diese Weise kann die Rechenzeit, die sonst in einer Warteschleife für das sogenannte polling  verschwendet würde, sinnvoll für andere Prozesse verwendet werden.

In dem Verzeichnis /dev sind die ,,Bilder`` der Hardwarekomponenten und Geräte des Systems abgelegt. Solche Bilder sind keine Dateien im herkömmlichen Sinne. Sie belegen keine Datenblöcke auf der Festplatte, sondern nur I-Nodes. Diese Spezialdateien stellen eine Verbindung zwischen den Anwenderprogrammen und den Gerätetreibern im Kernel her. In die meisten dieser Dateien kann geschrieben oder es kann aus ihnen gelesen werden wie bei normalen Dateien. Der Datenstrom wird vom Kernel übernommen und an das entsprechende Gerät weitergeleitet.

       Die Verbindung zum Kernel wird über Slots oder Kanäle hergestellt, die numeriert sind und hinter denen sich die Treiber für die Geräte verbergen. Die Nummer des Gerätetreibers wird als Hauptgerätenummer (Major Device Number) bezeichnet. Ein Treiber kann mehrere Geräte des gleichen Typs verwalten. Um die einzelnen Geräte zu unterscheiden, wird dem Treiber eine zweite Zahl, die Untergerätenummer (Minor Device Number), übergeben. Diese beiden Zahlen charakterisieren jede Datei im /dev Verzeichnis. Zusätzlich werden noch zwei Arten von Geräten unterschieden: Die blockorientierten Geräte mit direktem Zugriff, wie z. B. Disketten oder Festplatten, und die zeichenorientierten sequentiellen Geräte, wie Drucker, Terminal oder Maus. Damit hat jede Gerätedatei drei ,,Koordinaten``, mit der sie vom Kernel, unabhängig von ihrem Namen, eindeutig identifiziert werden kann.

Bei einem langen Listing des Verzeichnisses mit `ls -l' werden die Haupt- und Untergerätenummern anstelle der Dateigröße angezeigt. Ob ein Gerät als Zeichen- oder Blockdevice angesprochen wird, kann man am ersten Buchstaben der Zugriffsrechte sehen. Da steht `b' für block- und `c' für zeichenorientierte Gerätedatei.

Die Zahl der vom Linux-Kernel unterstützten Geräte wächst mit der Beliebtheit von Linux ständig an. Die offizielle Liste der registrierten Devices mit ihren Gerätenummern ist bei den Kernelsourcen in der Datei ./linux/Documentation/devices.txt zu finden.

Bei der Installation einer neuen Linux-Distribution wird durch das Shellscript MAKEDEV  automatisch ein Satz Gerätedateien erzeugt. In dieser Datei sind die Gerätenummern aller fest im Kernel enthaltenen Treiber gespeichert. Mit MAKEDEV lassen sich auch nachträglich Gerätedateien erzeugen. Zusätzliche Gerätedateien mit statischen Gerätenummern können von der Superuserin mit dem mknod-Kommando angelegt werden.

Die Namensgebung für die Gerätedateien ist Konvention. Jede Datei kann beliebig umbenannt oder durch Links mit anderen Namen verbunden werden, die Benutzung des Gerätes ändert sich dadurch nicht. Der File-System-Standard sieht aber vor, daß bei der Installation einer Linux-Distribution keine symbolischen Links automatisch erzeugt werden sollen.

Bei der Beschreibung der Gerätedateien werden gleichartige Geräte durch Wildcards bezeichnet, wie sie in der Shell verwendet werden. Ein Fragezeichen steht hier für ein einziges Zeichen, ein Asterisk (Stern) steht für mehrere Zeichen. Sie können sich die vollständige Liste der angesprochenen Gerätedateien mit dem ls-Kommando anzeigen lassen, indem Sie genau den in der Beschreibung angegebenen Ausdruck als Argument verwenden. Beispielsweise die Bezeichnungen /dev/fd? und /dev/hd* erweitern sich so:

$ ls /dev/fd?
/dev/fd0  /dev/fd1
$ ls /dev/hd*
/dev/hda   /dev/hda3  /dev/hda6  /dev/hdb   /dev/hdb3  /dev/hdb6
/dev/hda1  /dev/hda4  /dev/hda7  /dev/hdb1  /dev/hdb4  /dev/hdb7
/dev/hda2  /dev/hda5  /dev/hda8  /dev/hdb2  /dev/hdb5  /dev/hdb8
$ _

Die Gerätedateien sind nicht in dem Sinn wichtig, daß ein User im alltäglichen Betrieb viel mit ihnen zu tun hätte -- jedenfalls nicht bewußt und an der Oberfläche. Die folgenden Beschreibungen sind trotzdem ziemlich ausführlich, um Ihnen ein besseres Verständnis für die Arbeitsweise und die Qualitäten des Betriebssystems zu vermitteln.

Der Arbeitsspeicher

  Der Arbeitsspeicher (RAM) wird unmittelbar von der CPU bearbeitet. Die Organisation dieses Speichers ist eine der Hauptaufgaben des Betriebssystems. Linux erlaubt den Prozessen über spezielle Gerätedateien den Zugriff auf bestimmte Teile des Arbeitsspeichers und bietet Pseudogeräte für bestimmte Zwecke an.

Die RAM-Disks /dev/ram*

  

Die Dateien /dev/ram* bilden die RAM-Disks in das Dateisystem ab, wenn beim Übersetzen des Kernels der Treiber für dieses ``Gerät'' ausgewählt wurde. Das Betriebssystem stellt 16 RAM-Disks mit jeweils bis zu 4 MB Speicherkapazität bereit.

Unter dem Dateinamen /dev/initrd (Minor 250) kann eine zusätzliche RAM-Disk mit Kernelmodulen und einem speziellen Bootsystem zur Initialisierung des Kernels existieren.

Einzelheiten zur Verwendung der RAM-Disks finden Sie im Kapitel über die Systemverwaltung.

Zufallszahlen aus /dev/random

 

Für viele Computerprogramme ist ein gewisses Maß an Unbestimmtheit zur Erzielung des erwünschten Ergebnisses notwendig. Es gibt Bibliotheksfunktionen, die statistisch gleichverteilte Pseudozufallszahlen liefern. Damit lassen sich beispielsweise eindeutige Namen für temporäre Dateien generieren. Diese Pseudozufallszahlen sind jedoch vorhersehbar: Wenn der gleiche Startwert beim Aufruf benutzt wird, erzeugen die Funktionen immer die gleiche Folge von ``Zufallszahlen''. Zur Verschlüsselung von Daten ist ein Strom von zufälligen Bytes aus einer der Bibliotheksfunktionen deshalb nicht geeignet.

Linux bietet ein spezielles ``Gerät'' zur Erzeugung kryptographisch hochwertiger Zufallszahlen an. Der Kernel verwaltet einen 512 Byte großen Entropie-Pool, der ständig aus der Beobachtung verschiedener unvorhersehbarer Ereignisse gespeist wird. Die produktivste Quelle dieser Zufallsereignisse ist die Tastatur: die letzte Stelle der mikrosekundengenauen Zeitmessung zwischen zwei Tastendrücken läßt sich weder voraussagen noch reproduzieren.

Über die Gerätedatei /dev/random kann auf den Inhalt des Entropie-Pools zugegriffen werden. Wenn alle 512 Bytes daraus entnommen wurden, liefert das ``Gerät'' weitere Zufallsbytes erst, nachdem eine ausreichende Zahl zufälliger Ereignisse eingetreten ist.

Die Gerätedatei /dev/urandom hat diese Volumenbeschränkung nicht. Wenn der Entropie-Pool erschöpft ist, liefert dieses Device weitere Zufallszahlen auf der Basis des existierenden Pools. Diese Zahlen sind zwar noch statistisch gleichverteilt, es besteht aber eine gewisse innere Abhängigkeit der Zahlen untereinander. Für kryptographische Zwecke sind die Zufallszahlen aus dem zweiten Device deshalb nicht geeignet.

Die Senke /dev/null

 

Diese Spezialdatei ist für alle Anwender zum Lesen und Schreiben frei. Sie ist der Mülleimer des Systems. Alles, was dorthin geleitet oder verschoben wird, verschwindet auf Nimmerwiedersehen.

Die Quelle /dev/zero

Aus der Spezialdatei /dev/zero können beliebig viele Nullbytes gelesen werden. Diese Datei sollte nur mit Vorsicht als Quelle für Daten benutzt werden, weil die Menge der gelieferten Bytes nicht begrenzt ist.

Die Fehlerquelle /dev/full

Beim Versuch, in die Datei /dev/full zu schreiben, wird der Fehler ENOSPC erzeugt, so als ob kein freier Platz mehr auf dem Speichermedium vorhanden wäre.

Der IO-Bereich /dev/port

Über die Spezialdatei /dev/port können einzelne IO Ports angesprochen werden.

Der Arbeitsspeicher /dev/mem und /dev/kmem

 

Die Datei /dev/mem bildet den physikalischen RAM an, die Datei /dev/kmem repräsentiert den virtuellen Speicher des Kernels. Beide Devices sind zeichenorientiert.

Auf diese Devices greifen nur spezielle Programme wie free oder ps zu. Das direkte Lesen und Schreiben im Arbeitsspeicher des Rechners muß den Benutzern immer verboten sein.

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.

Die Diskettenlaufwerke /dev/fd*

     Die Dateien /dev/fd* repräsentieren die Diskettenlaufwerke (floppy disks). Linux kann ein oder zwei Floppycontroler mit jeweils zwei Diskettenlaufwerken, 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.

Tabelle Floppyformate
Tabelle: Die 31 im Kernel gespeicherten Floppyformate

Jedes der in der Tabelle 2.2 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 Laufwerk 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.[*] 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 Gruppen[*] 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.

  

Die IDE-Festplatten

   

Praktisch jeder PC ist mit einem IDE-Controller ausgerüstet, an dem die ``normalen'' Festplatten angeschlossen werden können. Die Dateien /dev/hd* repräsentieren diese Geräte. Außerdem werden durch die Einfühung von Enhanced-IDE weitere Geräte an dieser Schnittstelle unterstützt. Aktuell sind das vor allem die ATAPI CD-ROMs, theoretisch gibt es auch eine Unterstützung von ATAPI Magnetbandlaufwerken.

Linux kann bis zu vier Controller mit insgesamt acht Geräten verwalten. Der Kernel erkennt automatisch die beiden ersten Controller und die daran angeschlossenen Geräte durch Autoprobing. Weitere Geräte an den beiden zusätzlichen Controllern können durch entsprechende Kommandozeilenargumente auf dem Bootprompt beim Kernel angemeldet werden. Wenn die Bustreiber der Hardware die gemeinsame Benutzung von Interrupts zulassen, können mehrere Controller über den gleichen Interrupt betrieben werden, lediglich die IO-Adressen müssen sich in jedem Fall unterscheiden.

Zusätzliche Informationen zum Betrieb mehrerer IDE-Controller unter Linux finden Sie bei den Kernel-Sourcen in der Datei ./linux/Documentation/ide.txt.

Die ``rohen'' Geräte werden als /dev/hda, /dev/hdb usw. 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.

 

Die SCSI-Festplatten /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.

Altmetallverwertung: /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.

Das Dateisystem im Dateisystem: /dev/loop?

 

Durch das Loop-Device ermöglicht es Linux, eine Datei wie eine Diskette oder Festplattenpartition zu mounten. So kann die innere Struktur der Datei wie ein zweites Dateisystem im Dateisystem bearbeitet werden. Beispielsweise kann ein Bootdiskimage, wie es auf den CD-ROMs aller Linux-Distributionen enthalten ist, über das Loop-Device gemountet und bearbeitet werden, ohne es vorher auf eine Diskette zu schreiben:

[01] # losetup /dev/loop1 /mnt/cdrom/disks/boot01
[02] # mount -r /dev/loop1 /mnt/floppy/
[03] # ls /mnt/floppy/
boot.b       initdisk.gz  map          message      scsi1        scsi2
[04] # umount /mnt/floppy
[05] # mount -r /mnt/cdrom/disks/boot02 /mnt/floppy -o loop
[06] # _
Im ersten Kommando wird ein freies Loop-Device mit der Datei verbunden, die gemountet werden soll. Danach kann die Datei über die Gerätedatei des Loop-Devices wie eine normale Diskette in das Dateisystem eingebunden werden. Im fünften Kommando sehen Sie, wie das verbesserte Systemprogramm mount automatisch eine Datei mit einem freien Loop-Device verbinden kann.

Solange sich die Datei auf der CD-ROM befindet, können Sie selbstverständlich nur zum Lesen darauf zugreifen.

Wenn der Kernel DES oder IDEA als Verschlüsselungsfunktionen unterstützt, kann mit dem Loop-Device auch ein Crypto-Filesystem im Kernelspace erzeugt werden.

Bitte beachten Sie, daß das der Treiber für das Loop-Device zwar in den Kernelsourcen enthalten ist, die Programme losetup und das spezielles mount, die zur Unterstützung des Gerätes notwendig sind, in vielen Distributionen jedoch nicht vorhanden sind.

Zusammenlegung mehrerer Partitionen: /dev/md?

 

In der Kernelversion 2.0 ist der Treiber für Multiple Devices enthalten. Wenn dieser Treiber einkompiliert wird, erlaubt Linux die Zusammenlegung mehrerer Festplattenpartitionen auf drei verschiedene Weisen:

linear
Im linearen Modus werden die physikalischen Partitionen einfach aneinandergehängt und logisch zu einer größeren Partition verbunden. Dieser Modus soll in späteren Versionen auch die nachträgliche Vergrößerung existierender Partitionen ermöglichen.
Raid0
Mit Raid0 werden zwei Partitionen so miteinander verschmolzen, daß logisch zusammenhängende Datenblöcke auf zwei Partitionen und damit möglicherweise auf zwei unterschiedlichen Festplatten gespeichert werden. Partitionen, die in diesem Modus verbunden werden, lassen sich nachträglich nicht mehr verändern. Durch die Verteilung der Daten auf mehrere Geräte lassen sich deutliche Geschwindigkeitssteigerungen erzielen.
Raid1
Mit Raid1 werden alle Daten auf unterschiedlichen Partitionen gespiegelt, um beim Auftreten eines Fehlers auf einer Partition die Daten mit Hilfe der Spiegelkopie rekonstruieren zu können. Dieser Modus wird noch nicht vollständig unterstützt, sie ist auch in jedem Fall viel langsamer als eine entsprechende Hardwarelösung.

Weitere Informationen und die Sourcen zu den Programmen, die zur Benutzung der Multiple Devices erforderlich sind, finden Sie per FTP auf sweet-smoke.ufr-info-p7.ibp.fr unter public/Linux/md035.tar.gz.

Die CD-ROM-Laufwerke

 

Zu Beginn der Linux-Geschichte hat neben dem Internet die Diskette als Medium zur Verbreitung von Linux noch eine große Rolle gespielt. Heute hat die CDROM diese Funktion ganz übernommen. Weil die CD gleichzeitig Transport- und Speichermedium ist, ist sie in der Regel sogar dem Internet überlegen.

Anders als bei Floppys und Festplatten, bei denen sich einige wenige Geräteschnittstellen als Standard durchgesetzt haben, sind bei den CD-Laufwerken viele unterschiedliche Produkte mit herstellerspezifischen Geräteschnittstellen auf dem Markt. Linux unterstützt eine Vielzahl dieser Geräte. Vorausgesetzt, der entsprechende Treiber ist beim Übersetzen des Kernels aktiviert worden und die Unterstützung für das ISO9660-Dateisystem ist ebenfalls eingeschaltet, können Sie die Geräte über die jeweiligen Gerätedateien ansprechen.

In der Tabelle 2.3 finden Sie eine Aufstellung aller Gerätedateien zu den CD-ROM-Treibern.


Dateiname & Major & Minor & Beschreibung
 Gerätedateien für CD-ROM
hdb 3 1 ATAPI CD-ROM als zweites Gerät am ersten IDE-Controller
hd{c,d} 22 0,64 ATAPI CD-ROM als erstes oder zweites Gerät am zweiten IDE-Controller
srn 11 n SCSI CD-ROMs
sonycd 15   Sony CDU31A und CDU33A
Dieser Treiber muß immer durch ein Kommandozeilenargument auf dem Bootprompt initialisiert werden.
gscd 16   GoldStar
optcd 17   Optics Storage CD
sjcd 18   Sanyo CD
mcdx 20   Mitsumi (Extended, Multisession)
mcd 23   Mitsumi
cdu535 24   Sony CDU-535 und CDU-531
sbpcdn 25 0-3 SoundBlaster Pro, erster Controller, $0\le n\le 3$
Dieser Treiber unterstützt auch Geräte von Matsushita, Kotobuki, Panasonik, CreativeLabs, Longshine und Teac. Die Typenbezeichnungen dieser Geräte sind CR-521, CR-522, CR-523, CR-562 und CR-563. Achtung: es gibt original Soundblaster-Karten mit integriertem IDE-Controller. CD-Laufwerke, die an diesen Controller (IO-Port unterhalb 0x200) angeschlossen werden, müssen über den ATAPI-Treiber bedient werden.
sbpcdn 26 0-3 SoundBlaster Pro, zweiter Controller, $4\le n\le 7$
sbpcdn 27 0-3 SoundBlaster Pro, dritter Controller, $8\le n\le 11$
sbpcdn 28 0-3 SoundBlaster Pro, vierter Controller, $12\le n\le 15$
aztcd 29   Aztech/Orchid/Okano/Warnes
cm206cd 32   Phillips CM-206

Zu allen CD-Laufwerken können Sie Kommandozeilenargumente zur Konfiguration des Treibers auf dem Bootprompt angeben.

 

Zeichenorientierte Ein- und Ausgabegeräte

Die meisten interaktiven Ein- und Ausgabeoperationen geschehen an zeichenorientierten Geräten. Der Prototyp eines solchen Gerätes ist die Tastatur, die mit jedem Tastendruck ein Zeichen an den Computer sendet. Auch der Bildschirm arbeitet zeichenorientiert: selbst wenn ein Text bereits vollständig in einer Datei vorliegt, wird er bei der Darstellung auf dem Bildschirm doch Zeichen für Zeichen an das Gerät (beispielsweise die Grafikkarte) gesendet.

Die Console und virtuelle Terminals

     Die Kombination von Tastatur und Bildschirm als Standardein- und -ausgabe wird als Terminal bezeichnet. In der Terminologie der alten Großrechenanlagen sind Terminals separate Geräte, die über eine serielle Leitung mit dem Zentralrechner verbunden sind. Ein spezielles Terminal dient dem Operator zur Steuerung des Zentralrechners, das ist die Systemconsole.

Die Arbeitsweise moderner Workstations unterscheidet sich von diesem Modell, trotzdem haben sich die Begriffe mit leichten Abwandlungen erhalten. Bildschirm und Tastatur des PC sind das moderne Terminal. Wegen Multiuser-Multitasking muß dieses eine Terminal gleichzeitig als Standard-Ein-Ausgabe für viele Programme dienen. Um die vielen Standardkänäle auseinanderhalten zu können, benutzt das Betriebssystem das Konzept der virtuellen Terminals. Jeder Prozeß kann vom Kernel ein eigenes virtuelles Terminal anfordern und damit seine eigene Session eröffnen. Das Betriebssystem bestimmt, welchem virtuellen Terminal die reale Tastatureingabe zugeordnet wird und wann die Ausgabe eines virtuellen Terminals auf dem echten Bildschirm erscheint.

Der einfache Textbildschirm, auf dem die Meldungen beim Booten des Systems erscheinen, entspricht der Console des Zentralrechners. Sobald das Betriebssystem in den Multiusermodus wechselt, wird diese Console durch 8 oder mehr virtuelle Consolen überlagert. Tastatur und Bildschrim sind immer nur mit einer virtuellen Console verbunden. Zwischen den virtuellen Consolen kann durch die Tastenkombinationen ALT-F1 bis ALT-F8 umgeschaltet werden. Jede virtuelle Console wird durch eine eigene Gerätedatei im Dateisystem dargestellt.


TTY & DEV & VCS & DEV & VCSA & DEV & Beschreibung
Die Virtuellen Consolen
console 4/0     reale Console
tty 5/0 vcs 7/0 vcsa 7/128 aktive virtuelle Console
tty1 4/1 vcs1 7/1 vcsa1 7/129 1. virtuelle Console (ALT-F1)
tty2 4/2 vcs2 7/2 vcsa2 7/130 2. virtuelle Console (ALT-F2)

Die Spalte TTY zeigt die eigentlichen Terminaldateien, VCS und VCSA sind zusätzliche Devices für den Zugriff auf den Bildschirm der virtuellen Consolen. Die Spalten DEV geben zu allen Devices die Major/Minor Gerätenummernpaare an.

  Über die Virtual Console Screens, VCS, kann auf Text im aktuellen Bildschirmspeicher der virtuellen Consolen zugegriffen werden. Die VCSA-Devices liefern zusätzlich zum Text (Buchstaben) die Zeichenattribute und in den ersten 4 Bytes Information über Anzahl der Bildschirmzeilen und -spalten sowie die aktuelle Cursorposition. Diese Gerätedateien können einerseits als Schnittstelle für die Mausunterstützung auf den virtuellen Consolen dienen, andererseits können aus diesen Devices die Daten für Screendumps der jeweiligen Bildschirme bezogen werden. 

Pseudoterminals für die grafische Benutzeroberfläche

Das Konzept der virtuellen Terminals wird auch für die graphische Benutzeroberfläche von Linux, dem X Window System, angewendet. Die Prozesse, die mit diesem System arbeiten, können vom Betriebssystem ein Pseudoterminal anfordern und die Ein-Ausgabekanäle mit diesem Terminal verbinden.

Im Unterschied zur virtuellen Console wird das Pseudoterminal einer X-Anwendung nicht mit dem Gerätetreiber für Tastatur und Bildschirm verbunden, sondern mit dem X Window Server. Als Bindeglied gehört zu jedem Pseudoterminal ein Pseudo-TTY-Master, an den sich der X-Server ankoppeln kann, um darüber mit dem Pseudoterminal zu kommunizieren.

Diese Master-Slave-Paare sind als Gerätedateien im Verzeichnis /dev eingetragen. Alle zeichenorientierten Geräte mit der Hauptgerätenummer 2 sind Master, die mit der Hauptgerätenummer 3 sind Slaves. Die Namen der Masterdateien sind ptyp0, ptyp1 bis ptyef. Die dazugehörigen Slaves haben die Namen ttyp0, ttyp1 bis ttyef. Die beiden signifikanten Zeichen der jeweils 256 Dateinamen setzen sich aus 16 Serien mit den Buchstaben pqrstuvwxyzabcde und den 16 Hexadezimalziffern 0123456789abcdef zusammen.

Bei älteren Kernelversionen gab es nur 64 Pseudoterminalpaare, die sich die Hauptgerätenummer 4 mit anderen Geräten teilen mußten. Um die Kompatibilität mit älteren Linux-Distributionen zu erhalten, werden diese Gerätedateien mit Untergerätenummern ab 128 als zusätzliche Einträge der ersten 64 Pseudoterminals bislang noch unterstützt.   

Die serielle Schnittstelle

    

Vom BIOS des PC werden vier serielle Schnittstellen unterstützt, COM1 bis COM4. Normalerweise ist ein Rechner mit zwei dieser Ports ausgerüstet. Für die dritte und vierte Schnittstelle werden von den Hardwareherstellern in der Regel als Standard die Interrupts 3 und 4 angeboten. Die gemeinsame Benutzung eines Interrupts durch zwei Schnittstellenbausteine ist aber aus technischen Gründen mit diesen Karten unmöglich. Der Betrieb von vier ``normalen'' Schnittstellen ist deshalb nur dann zulässig, wenn die Hardware die Auswahl von zusätzlichen, freien Interrupts erlaubt. Wenn Sie Ihren Rechner mit zusätzlichen seriellen Schnittstellen ausstatten möchten, beispielsweise um einen Modempool zu betreiben, empfiehlt sich der Einsatz spezieller Multiportkarten. Eine Liste der von Linux unterstützten Modelle finden Sie im Serial-HOWTO.


DOS & In & Out & Minor & IO-Port & IRQ
  Die Gerätedateien für die seriellen Schnittstellen
COM1 ttyS0 cua0 64 0x3f8 4
COM2 ttyS1 cua1 65 0x2f8 3
COM3 ttyS2 cua2 66 0x3e8 (4)
COM4 ttyS3 cua3 67 0x2e8 (3)
ttyS63 cua63 127    

Zu jeder seriellen Schnittstelle gehören zwei Gerätedateien. Die eine, /dev/ttyS*, blockiert einen Prozeß beim Versuch, das Device zu öffnen, solange, bis durch ein Carrier-Detekt an der Schnittstelle vom Modem oder Terminal das Bestehen einer Datenverbindung angezeigt wird. Die andere, /dev/cua* arbeitet ,,non-blocking``, also unabhängig vom Carrier-Detect, und erlaubt es dem Prozeß, selbst den Status der Schnittstelle abzufragen und entsprechend darauf zu reagieren. Das Betriebssystem verbietet das gleichzeitige Öffnen beider Gerätedateien für eine Schnittstelle. Während das Device ttyS* bei geöffnetem cua* blockiert liefert das andere im umgekehrten Fall eine Fehlermeldung an den öffnenden Prozeß.

Ein auf der Modemleitung /dev/ttyS1 wartendes getty wird beispielsweise automatisch solange blockiert, bis das Modem die Carrier-Detect Leitung ,,hoch`` setzt. Wenn in diesem Moment die Datei /dev/cua1 geöffnet ist (weil gerade ein ausgehender UUCP-Call das Modem belegt, der Carrier also zu dieser Verbindung gehört), wird das getty weiter blockiert. Erst wenn ein auf ,,Auto-Answer`` gesetztes Modem eine ankommende Modemverbindung registriert und von sich aus den Carrier-Detect anzeigt, wird die von getty angeforderte Gerätedatei /dev/ttyS1 geöffnet und der Prozeß aus seiner Blockade erlöst, um die Login-Prozedur für den ankommenden Anruf durchzuführen.

Die Blockierung des open(2) Systemaufrufs für die Devices /dev/ttyS? kann durch den Modus `O_NONBLOCK' (`O_NDELAY') umgangen werden. Das so geöffnete Device verhält sich dann wie das entsprechende /dev/cua?.

Die Busmäuse

 

Besonders bei Notebooks kommen Mäuse beziehungsweise Trackballs oder Touchpads zum Einsatz, die nicht über die normale serielle Schnittstelle sondern über einen speziellen Controller mit dem Rechner verbunden werden. Diese Eingabegeräte werden unter der Sammelbezeichnung ``Busmäuse'' von Linux unterstützt.


Datei & Minor & Beschreibung
Die Busmäuse
logibm   Die Logitech-Busmäuse werden meistens mit einem runden, 9-poligen Stecker an eine Steckkarte angeschlossen.
psaux 1 Die PS/2-Mäuse sind eigentlich keine Busmäuse im engeren Sinne, vielmehr werden sie über den PS/2-Port des Tastaturcontrollers gesteuert. Die Zeigegeräte von Notebooks sind in der Regel von diesem Typ.
inportbm 2 Die Inport-Busmäuse (von Microsoft) haben normalerweise den gleichen Stecker wie die Logitech-Busmäuse.
atibm 3 Diese weitere Variante der Inport-Mäuse wird mit den kombinierten ATI-XL Grafik/Maus-Adaptern geliefert.
Für Interrupts für die echten Busmäuse können über Kommandozeilenargumente auf dem Bootprompt eingestellt werden.

Der Wecker: /dev/rtc

 

Der Name ``Real Time Clock'' ist wohl etwas hoch gegriffen. Es handelt sich bei diesem Gerät um die batteriegepufferte CMOS-Uhr, die den Rechner beim Einschalten mit dem aktuellen Datum versorgt. Diese Uhr kann einem Benutzerprozeß durch den Hardwareinterrupt 8 asynchron Signale schicken, und auf diese Weise zur Steuerung des Programms beitragen.

Bitte beachten Sie, daß diese Uhr meistens auf die internationale Normalzeit (UTC) eingestellt ist und von der lokalen Zonenzeit abweicht. Je nachdem, wiviel Zeit seit dem Einschalten des Rechners und dem damit verbundenen Setzen der Systemuhr vergangen ist, kann die Systemzeit von der Zeit der CMOS-Uhr zusätzlich abweichen.

Weitere Informationen und ein kleines Demoprogramm zur Erläuterung der Funktionen finden Sie bei den Kernelsourcen in der Datei ./linux/Documentation/rtc.txt.

Die parallele Druckerschnittstelle /dev/lp?

    

Die Gerätedateien /dev/lp? bilden die parallelen Schnittstellen für Drucker im Dateisystem ab. Linux unterstützt bis zu drei Druckerschnittstellen.

Datei & Minor & IO-Port & Bemerkung
Die Druckerschnittstellen
lp0   0x3bc Dieser Druckerport ist ``die zweite Wahl'' und wird von manchen Controllern nicht unterstützt.
lp1 1 0x378 Das ist der eigentliche Standardport, dem normalerweise der Interrupt 7 zugeordnet wird.
lp2 2 0x278 Wenn eine zweite Druckerschittstelle vorhanden ist, wird sie meistens auf diesem IO-Port mit dem Interrupt 5 betrieben.

Bei vielen modernen Rechnern befindet sich ein paralleler Schnittstellenbaustein onboard. Die Parameter lassen sich dann meistens im BIOS einstellen (beziehungsweise dort nachlesen).

In der Standardeinstellung benutzt Linux keine Interruptsteuerung zum Drucken. Nach der vorgegebenen Methode unternimmt der Druckertreiber eine bestimmte Anzahl von Versuchen, seine Daten an den Drucker abzugeben. Wenn der Drucker nach Ablauf dieser Versuche nicht alle Daten übernehmen konnte, wartet der Treiber eine kurze Zeit und gibt den Prozessor für andere Programme frei. Nach dieser Zeit beginnt die Schleife mit den Versuchen von neuem, so lange, bis der Drucker alle Daten angenommen hat. Diese Methode wird als Polling bezeichnet.

Bei einem schnellen Rechner führt das Polling zu keinem spürbaren Leistungsverlust. Durch eine Interruptsteuerung kann aber die Rechenzeit, die der Druckertreiber mit dem Durchlauf der Versuchsschleifen verbringt, für nützlichere Aufgaben verwendet werden. Der Drucker löst das Hardwaresignal aus, wenn sein Puffer bereit ist, neue Daten aufzunehmen. Der Treiber schickt dem Drucker so viele Daten, bis dieser seinen Puffer aufgefüllt hat, danach ``legt er sich schlafen'' und wartet, bis er vom Kernel nach dem nächsten Interrupt vom Drucker wieder aufgeweckt wird.

   Um die Interruptsteuerung einzuschalten, muß die Systemverwalterin mit dem Programm tunelp dem Treiber den entsprechenden Interrupt mitteilen.

[01] # /usr/sbin/tunelp /dev/lp1
/dev/lp1 using polling
[02] # /usr/sbin/tunelp /dev/lp1 -i 7
/dev/lp1 using IRQ 7
[03] # _
Die Interruptsteuerung wird ausgeschaltet, indem als Interruptnummer 0 angegeben wird.

Die parallele Schnittstelle läßt sich nicht nur zum Anschuß von Druckern verwenden. Linux unterstützt noch zwei weitere Anwendungen des Parallelports:
IP-Vernetzung mit PLIP
Mit einem Lap-Link-Kabel am Parallelport können zwei Rechner über eine Distanz von bis zu 15 Metern verbunden werden und mit den TCP/IP Protokollen vernetzt werden, wie über eine Ethernetverbindung.
SCSI Ersatz für Iomega ZIP-Drive
Als interessante Alternative zu Floppystreamern und den alten Wechselplatten bieten die ZIP-Drives mit einer Kapazität von 96MB vielfältige Möglichkeiten zur Speicherung von Daten aller Art. Diese Geräte gibt es in einer Version für den Parallelport, der vom Linux-Treiber dann wie ein SCSI-Host angesprochen wird.
Beide Anwendungen sind nicht mit der ``normalen'' Verwendung als Druckerschnittstelle vereinbar. Wenn Sie den Parallelport auf diese Weise einsetzen wollen und abwechselnd auch einen Drucker an der gleichen Schnittstelle betreiben möchten, müssen Sie alle Treiber als Module anlegen und diese nach Bedarf in den Kernel einbinden. Wenn Sie zwei Parallelports zur Verfügung haben, können Sie zwei Treiber fest in den Kernel einbauen und sie durch Kommandozeilenargumente auf dem Bootprompt in passender Weise initialisieren.
(Beispiel: boot: linux lp=0x378,7 ppa=0x278)  

Die Soundkarte

   In Verbindung mit einer Soundkarte bietet ein Linux-PC umfangreiche Multimedia-Qualitäten. Der Kernel unterstützt fast alle gängigen Fabrikate und es gibt Utilities zur Bedienung aller Grundfunktionen der Soundkarten.


Dateiname & Minor & Beschreibung
 Gerätedateien für die Soundkarte
mixer   Die meisten Soundkarten enthalten eine Einheit zum Mischen der verschiedenen Eingabekanäle. Dieses ``Mischpult'' kann über die Gerätedatei mixer angesprochen und durch entspechende IO-Controls die Lautstärke der verschiedenen Kanäle abgestimmt werden. Programme wie xmixer oder die verschiedenen CD-Player bieten ein komfortables Front-End zu dieser Komponente der Soundkarte an.
sequencer 1 Zum Abspielen von Sounds über den Synthesizer der Soundkarte oder über ein am MIDI-Port angeschlossenes Gerät dient die Datei sequencer. Die Befehle, die an diese Schnittstelle gesendet werden, kommen als Events in eine Warteschlange und werden zu dem im Event festgelegten Zeitpunkt an das Gerät ausgeliefert.
midi00 2 Zur direkten Kommunikation mit einem MIDI-Gerät ohne die Zeitsteuerung des Sequencers dient die Gerätedatei midi00.
dsp 3 Das Digital Sampling Device dsp ist die direkte Schnittstelle zum Analog/Digital-Wandler der Soundkarte. Es ist möglich, rohe Samples direkt aus der Gerätedatei zu lesen und darüber wiederzugeben. Bei der Grundeinstellung werden Samples mit einer Tiefe von 8-Bit und einer Rate von 8000Hz erzeugt und gespielt. Durch entsprechende Einstellung der Schnittstelle können Programme wie vrec und vplay Samples bis zu 16-Bit und 44kHz aufnehmen und wiedergeben.
audio 4 Mit der Gerätedatei audio bietet der Kernel einen Teil der Funktionalität des gleichnamigen Gerätes der Spark Workstation an. Der Einsatz ist ähnlich wie der des Digital Sampling Device, die Daten werden jedoch im $\mu$-Law-Format codiert.
sndstat 6 Ähnlich wie die Dateien des Proc-Filesystems liefert die Gerätedatei sndstat Informationen über den Status des Soundtreibers. Sie können die Daten durch das Programm cat anzeigen lassen.
music 8 Diese Gerätedatei ist eine andere Art von Sequencer, speziell für die MIDI-Schnittstelle. Die Gerätedatei kann auch unter dem Namen sequencer2 verzeichnet sein.

Sollte mehr als eine Soundkarte installiert sein, können weitere Gerätedateien für Sampler und MIDI unterstützt werden.

Daten am laufenden Band

  Als Medium zur Datensicherung bieten sich Magnetbänder wegen ihres besonders günstigen DM/Megabyte-Verhältnisses an. Mit Linux können die gängigen Bandlaufwerke für PC betrieben werden.

Durch die physikalische Anordnung der Daten auf dem Magnetband ist ein direkter Zugriff auf einzelne Datenblöcke nicht möglich. Die Magnetbänder können immer nur sequentiell vom Anfang her gelesen werden. Bandlaufwerke werden als zeichenorientierte Geräte betrieben. Die Gerätetreiber können das Band automatisch nach dem Schließen der Gerätedatei zurückspulen (``Rewind On Close'').

Weil die Bandgeräte mit kontinuierlichen Datenströmen arbeiten, werden sie auch als Streamer bezeichnet.

Die QIC-02-Streamer /dev/rmt? und /dev/tape*

 

Linux unterstützt im Standardkernel neben SCSI Bandlaufwerken mit dem QIC-Aufzeichnungsformat auch Laufwerke mit eigener Adapterkarte nach dem QIC-02 Standard (beispielsweise Archive SC400/SC402/SC499, Everex 811V/831V oder Wangtek 5150).

Die Dateien /dev/rmt? bilden diese Streamer im Dateisystem ab. Die QIC-02 Bandgeräte benutzen die Hauptgerätenummer 12. Durch die Untergerätenummer wird der Treiber für eine bestimmte Bandsorte eingestellt:

0
automatische Erkennung
2
QIC-11 (24 MB, 4 Spuren, 10 000 ftpi)
4
QIC-24 (60 MB, 9 Spuren, 10 000 ftpi)
6
QIC-120 (120 MB, 15 Spuren, 12 500 ftpi)
8
QIC-150 (150 MB, 18 Spuren, 12 500 ftpi)
Einträge für QIC-300 und QIC-600 (Minor 10 und 12) sind im Sourcecode für den Treiber enthalten, aber als ungetestet kommentiert.

Die Geräte mit den hier aufgezählten Nummern arbeiten ,,No Rewind On Close``; wenn das niedrigste Bit 1 (die Gerätenummer also ungerade) ist, arbeitet der Streamer ,,Rewind On Close``. Die Gerätedateien mit ungeraden Minor Device Nummern werden vom MAKEDEV Script nicht automatisch erzeugt.

Wenn das 7. Bit der Minor Device Nummer gesetzt ist, gibt der Gerätertreiber zusätzliche Debugging-Information aus. Die vom MAKEDEV Script der aktuellen Distributionen erzeugte Datei /dev/tape-d ist ein Beispiel für diesen Fall. Ein Öffnen der Gerätedatei /dev/tape-reset (Minor 255) bewirkt einen Reset des Bandcontrollers und erforderlichenfalls ein Zurückspulen des Bandes.

Die SCSI-Streamer /dev/st? und /dev/nst?

 

Tabelle 2.9 gibt einen Überblick über die Gerätedateien für SCSI-Streamer. Die Dateien nst* unterscheiden sich von den st* Devices dadurch, daß die n* Versionen beim Schließen der Datei das Band nicht zurückspulen (No Rewind On Close). Das Zählmuster für die Untergerätenummern (Minor) kann für alle Modi durch zusätzliche Laufwerke ergänzt werden.


 Die Gerätedateien für SCSI-Bandlaufwerke
Datei st0 st1 st0l st1l st0m st0a nst0 nst0l nst0m nst0a
Minor   1 32 33 64 96 128 160 192 224
Modus     1 1 2 3   1 2 3

Eine spezielle Adressierung des Gerätetreibers zur Bestimmung des Magnetbandtyps ist nicht notwendig, weil die SCSI Streamer normalerweise die Bandsorte selbst erkennen. In Bezug auf die Schnittstelle macht der Kernel auch keinen Unterschied zwischen QIC-02 und DAT Tapes. Spezielle Einstellungen des Treibers, beispielsweise zur Änderung der Blockgröße, werden durch das Systemprogramm mt vorgenommen.

Um die Organisation eines Systems mit vielen unterschiedlichen Bändern mit verschiedenen Parametern zu erleichtern, bietet der Treiber für jede der beiden Grundbetriebsarten drei zusätzliche Gerätedateien, für die jeweils ein anderer Modus geladen werden kann. Die Modi werden beim Booten oder beim Laden des Treibermoduls alle gleich initialisiert und müssen jeweils für eines der zusätzlichen Devices mit dem Programm mt eingestellt werden. Sie gelten dann gemeinsam für die die Geräte mit und ohne Zurückspulen. Zusätzliche Informationen finden Sie bei den Kernelsourcen in der Datei ./linux/drivers/scsi/README.st.

Der Floppystreamer (ftape)

  Die Gerätedateien /dev/rft0 und /dev/nrft0 dienen als Schnittstelle zum Gerätetreiber des ersten Floppystreamers. Diese Geräte arbeiten mit formatierten Magnetbändern der Typen QIC-40/-80 an einer QIC-117 Schnittstelle. Sie werden wie ein drittes Diskettenlaufwerk an den Floppycontroller angeschlossen. In der Kernelversion 2.0 kann der Treiber sowohl als Modul als auch als fester Bestandteil des Kernels eingebunden werden. Wenn Sie an einem zweiten Controller zusätzliche Streamer angeschlossen haben, können diese Geräte über weitere Devices mit entspechend höheren Untergerätenummern angesprochen werden. Häufig wird ein symbolischer Link von /dev/ftape auf /dev/rft0 und von /dev/nftape auf nrft0 angelegt.

Die Operationen auf /dev/nrft0 führen nach ihrer Beendigung nicht zum Zurückspulen des Bandes (No Rewind On Close). Wenn Sie den Treiber als Modul durch den Kerneldämon laden lassen, dürfen Sie das Band auf keinen Fall länger als eine Minute in dieser Position lassen, weil sonst der Kerneldämon den Gerätetreiber entfernt und beim nächsten Zugriff auf das Band Daten verloren gehen können.

 

 


next up previous contents index
Next: Die Konfigurationsdateien im Verzeichnis Up: Reise durch's Dateisystem Previous: Die Binärverzeichnisse

Das Linux Anwenderhandbuch
(C) 1997 LunetIX