/dev
das Verzeichnis /dev
Die meisten Linux-Benutzer verstehen, dass /dev/sda1 nur ein Schnellzugriff auf die erste vom Kernel auf der Festplatte gefundene Partition ist. Das ist ziemlich einfach, oder?
Aber denken Sie an Hot-Plug-fähige Geräte wie USB, IEEE 1394, Hot-Swap-fähige PCI usw. Welches ist das erste Gerät für jedes dieser Geräte? Und für wie lange? Wie werden die anderen Geräte heißen, wenn das erste verschwindet? Wie wird sich das auf laufende Übertragungen auswirken? Wäre es nicht lustig, wenn ein Druckauftrag plötzlich von einem High-End-Laserdrucker auf einen Fast-Dead-Matrix-Drucker verschoben würde, nur weil jemand beschlossen hat, dem Laserdrucker (der zufällig der erste Drucker war) den Stecker zu ziehen?
Hier kommt die Geräteverwaltung ins Spiel. Eine moderne Geräteverwaltung (wie z.B. udev und eudev) muss folgendes beherrschen:
- im Userspace laufen
- Gerätedateien dynamisch erstellen und entfernen
- Geräte konsistent benennen
- eine Benutzerschnittstelle (API) bieten
Jedes mal wenn sich an der Gerätestruktur etwas ändert, meldet der Kernel ein "uevent", welches die Geräteverwaltung empfängt. Die Geräteverwaltung reagiert darauf entsprechend den Regeln in den Verzeichnissen /etc/udev/rules.d, /run/udev/rules.d und /lib/udev/rules.d. Basierend auf den Informationen des "uevent" sucht es die passende Regel(n) die es benötigt, die gewünschte Aktion anstoßen zu können. Diese können das Anlegen oder Entfernen von Gerätedateien enthalten oder auch zum Laden von Firmware in den Kernel-Speicher führen.