Gerätetypen
100%

Geräte · Lektion 2

Gerätetypen

Lerne, Zeichen- und Blockgeräteknoten von Pipes, Sockets und gewöhnlichen Dateisystemobjekten zu unterscheiden.

Das erste Zeichen eines von ls -l angezeigten Modus bezeichnet den Dateisystemtyp eines Objekts. Unter /dev sind besondere Zeichen- und Blockdateien Geräteknoten. Dort können auch Pipes und Knoten von Unix-Domain-Sockets erscheinen. Diese sind jedoch Objekte für die Interprozesskommunikation und keine Hardware-Geräteknoten.

$ ls -l /dev/null /dev/sda /run/systemd/journal/dev-log /tmp/example-fifo
crw-rw-rw- 1 root root 1, 3 ... /dev/null
brw-rw---- 1 root disk 8, 0 ... /dev/sda
srw-rw-rw- 1 root root      ... /run/systemd/journal/dev-log
prw------- 1 user user      ... /tmp/example-fifo

Einträge und Berechtigungen unterscheiden sich je nach System; das Beispiel veranschaulicht nur die Typzeichen.

Zeichengeräteknoten

Ein c bezeichnet ein Zeichengerät. Es stellt normalerweise eine stromorientierte oder gerätespezifische Schnittstelle bereit und keinen adressierbaren Speicher aus Blöcken fester Größe. Beispiele sind Terminals und Pseudogeräte wie /dev/null.

„Zeichen“ bedeutet nicht, dass jeder Systemaufruf genau ein Zeichen übertragen muss. Anwendungen können Puffer lesen oder schreiben, während der Treiber Blockierung, Rahmung und Steuerverhalten festlegt.

Welches erste Moduszeichen bezeichnet einen Zeichengeräteknoten?

Blockgeräteknoten

Ein b bezeichnet ein Blockgerät. Blockgeräte stellen über die Blockschicht des Kernels adressierbaren Speicher in Blöcken bereit und können Operationen wie gepufferte Ein-/Ausgabe, Partitionierung und Dateisysteme unterstützen. Datenträger, Partitionen und logische Volumes besitzen häufig Blockgeräteknoten.

Ein Blockgeräteknoten ist kein eingehängtes Dateisystem. Er stellt ein Speichergerät oder einen logischen Bereich dar; darauf kann getrennt ein Dateisystem erstellt und eingehängt werden. Das Schreiben von Rohdaten auf den falschen Blockgeräteknoten kann Partitionstabellen, Dateisysteme oder Benutzerdaten zerstören.

Was bedeutet das erste Moduszeichen b?

FIFOs und Socket-Knoten

Ein p bezeichnet eine FIFO, auch benannte Pipe genannt. Sie stellt einen benannten Bytestrom zur Kommunikation zwischen Prozessen bereit. Nach dem Lesen bleiben die Daten nicht dauerhaft im FIFO-Knoten gespeichert.

Ein s bezeichnet den Knoten eines Unix-Domain-Sockets. Er benennt einen lokalen Socket-Endpunkt und kann verbindungsorientierte oder Datagramm-Kommunikation, die Übergabe von Dateideskriptoren und Funktionen für Peer-Anmeldedaten unterstützen. Netzwerk-Sockets mit Internetadressen besitzen nicht zwangsläufig Dateisystemknoten.

Weder eine FIFO noch ein Unix-Socket-Knoten verwendet Major- und Minor-Nummern zur Auswahl eines Hardwaretreibers.

Welche Aussage unterscheidet diese IPC-Objekttypen richtig?

Major- und Minor-Gerätenummern

Zeichen- und Blockgeräteknoten speichern eine Gerätenummer, die in Major- und Minor-Komponente aufgeteilt ist. In einer langen Auflistung ersetzen sie die gewöhnliche Spalte für die Dateigröße:

brw-rw---- 1 root disk 8, 0 ... /dev/sda

Das Zahlenpaar teilt dem Kernel mit, welche registrierte Geräteschnittstelle und Instanz der Knoten anspricht. Eine Major-Nummer ist einem Treiber oder einer Geräteklasse zugeordnet; der Treiber interpretiert die Minor-Nummer. Codiere Annahmen wie „Minor null bedeutet immer das erste Laufwerk“ nicht fest ein, denn die Zuordnung hängt vom Subsystem und den Kernel-Schnittstellen ab.

Zeige Typ und Gerätenummern ausdrücklich an:

$ stat -c 'type=%F major=%t minor=%T path=%n' /dev/null

GNU stat gibt die Werte %t und %T hexadezimal aus.

Welche Objekte verwenden Major- und Minor-Nummern zur Identifikation einer Kernel-Geräteschnittstelle?

Lektion abgeschlossen

Sie haben Gerätetypen abgeschlossen

Du kannst besondere Dateisystemtypen nun einordnen, ohne sie alle als Hardwaregeräte zu behandeln.

  • Lies c als Zeichen- und b als Blockgeräteknoten.

  • Lies p als FIFO und s als Knoten eines Unix-Domain-Sockets.

  • Ordne Major- und Minor-Nummern ausschließlich Geräteknoten zu.

  • Behandle rohen Zugriff auf Blockgeräte als potenziell zerstörerisch.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Geräte