Das Verzeichnis /dev
100%

Geräte · Lektion 1

Das Verzeichnis /dev

Lerne, wie Linux Geräteschnittstellen und Pseudogeräte über Knoten unter `/dev` bereitstellt.

Linux stellt viele Geräteschnittstellen des Kernels über besondere Dateisystemobjekte bereit, die Geräteknoten heißen. Sie befinden sich normalerweise unter /dev, zusammen mit nützlichen symbolischen Links und Kommunikationsendpunkten. Öffnet eine Anwendung einen Geräteknoten, verbindet sie sich mit einem Kernel-Treiber und nicht mit Bytes, die in einer gewöhnlichen Datei gespeichert sind.

`/dev` erkunden

Liste das Verzeichnis auf, ohne Geräte zu dereferenzieren oder auszulesen:

$ ls -l /dev

Einträge können physischen Speicher, Terminals, Eingabeschnittstellen, logische Geräte oder vom Kernel bereitgestellte Pseudogeräte darstellen. Nicht jede Hardwarekomponente benötigt einen eigenen sichtbaren Knoten, und ein Gerät kann durch mehrere Links oder Schnittstellen repräsentiert werden.

Das erste Zeichen einer langen Auflistung bezeichnet den Typ des Dateisystemobjekts. Zeichen- und Blockgeräteknoten erscheinen als c beziehungsweise b; spätere Lektionen behandeln diese Typen und ihre Major- und Minor-Nummern.

Was geschieht, wenn ein Programm einen Geräteknoten unter /dev öffnet?

Pseudogeräte

Einige Knoten stellen Kernel-Dienste bereit, ohne physischer Hardware zu entsprechen. /dev/null nimmt geschriebene Daten an und verwirft sie:

$ command > /dev/null

Weitere bekannte Beispiele sind /dev/zero, das Nullbytes erzeugt, und /dev/urandom, das Zufallsbytes über das Zufallssubsystem des Kernels bereitstellt. Jedes besitzt eine genau festgelegte Semantik; leite sein Verhalten nicht allein vom Dateinamen ab.

Was macht /dev/null mit hineingeschriebenen Daten?

Dynamische Geräteverwaltung

Auf modernen Linux-Systemen kann das vom Kernel gestützte devtmpfs grundlegende Geräteknoten anlegen, sobald Geräte erscheinen. Ein Userspace-Gerätemanager wie udev verarbeitet Ereignisse, wendet Berechtigungen und Eigentümerschaft an und erzeugt nützliche symbolische Links oder richtliniengesteuerte Namen. Die genaue Aufgabenverteilung hängt vom System ab.

Dauerhafte Links wie Einträge unter /dev/disk/by-id/ oder /dev/disk/by-uuid/ können in Konfigurationen sicherer sein als von der Erkennungsreihenfolge abhängige Namen wie /dev/sda. Letztere können sich ändern, wenn sich Hardwaretopologie oder Erkennungsreihenfolge ändern.

Warum kann ein Administrator in einer Konfiguration /dev/disk/by-id/... gegenüber /dev/sda bevorzugen?

Sicher interagieren

Standardwerkzeuge können Geräteknoten öffnen, doch beliebige Lese- und Schreibvorgänge werden dadurch nicht sicher. Lesen kann sensible Eingaben oder Speicherdaten offenlegen; Schreiben auf einen Datenträger, ein Terminal oder eine Firmware-Schnittstelle kann Daten beschädigen oder Benutzer stören. Deshalb begrenzen Berechtigungen, Gruppen, ACLs, Capabilities und vermittelnde Dienste den Zugriff auf Geräteknoten.

Verwende zuerst schreibgeschützte Erkundungswerkzeuge, bestätige den genauen Knoten und die Geräteidentität und folge der gerätespezifischen Dokumentation. Experimentiere auf einem wichtigen System niemals, indem du Daten in einen unbekannten Eintrag unter /dev umleitest.

Warum solltest du keine beliebigen Daten in einen unbekannten Geräteknoten schreiben?

Lektion abgeschlossen

Sie haben Das Verzeichnis /dev abgeschlossen

Du kannst /dev nun als Sammlung aktiver, dem Kernel zugewandter Schnittstellen beschreiben.

  • Unterscheide Geräteknoten von gewöhnlichen Dateien.

  • Erkenne Pseudogeräte wie /dev/null.

  • Ordne dynamische Knoten und dauerhafte Links der Geräteverwaltung zu.

  • Behandle direkten Gerätezugriff als schnittstellenspezifisch und 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