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.
Geräte · Lektion 1
Das Verzeichnis /dev
Lerne, wie Linux Geräteschnittstellen und Pseudogeräte über Knoten unter `/dev` bereitstellt.
`/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?
Nutze das Lab Hardwaregeräte unter Linux erkunden für schreibgeschützte Untersuchungen in einer kontrollierten Umgebung.
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