Ich kenne ungefähr die Dateien unter / dev.
Ich kenne zwei Typen (Zeichen / Block). Der Zugriff auf diese Dateien erfolgt über einen Treiber im Kernel.
Ich möchte wissen, was passiert, wenn ich eine lösche - speziell für beide Dateitypen. Sagen wir /dev/sda
, wenn ich eine Block-Gerätedatei lösche , welche Auswirkung hat dies, wenn überhaupt? Habe ich gerade die Festplatte abgemeldet?
/dev/mouse/mouse0
Was passiert , wenn ich lösche ? Funktioniert die Maus nicht mehr? Ersetzt es sich automatisch selbst?
Kann ich diese Dateien überhaupt löschen? Wenn ich eine VM eingerichtet hätte, würde ich es versuchen.
Antworten:
Das sind einfach (spezielle) Dateien. Sie dienen nur als "Zeiger" auf das eigentliche Gerät. (dh das Treibermodul im Kernel.)
Wenn ein Befehl / Dienst diese Datei bereits geöffnet hat, hat er bereits ein Handle für das Gerät und wird weiterarbeiten.
Wenn ein Befehl / Dienst versucht, eine neue Verbindung herzustellen, versucht er, auf diese Datei zuzugreifen, und schlägt fehl, weil "Datei nicht gefunden".
In der Regel werden diese Dateien mit Daten gefüllt
udev
, die automatisch beim Systemstart und bei besonderen Ereignissen wie dem Anschließen eines USB-Geräts erstellt werden. Sie können diese Dateien jedoch auch manuell erstellenmknod
.quelle
makedev
Befehl, der normalerweise die Aufgabe erfüllt, und im Gegensatz zuudev
ihm scheint er unter den meisten Unix-ähnlichen Betriebssystemen vorhanden zu sein.linux
undudev
/etc/init.d/makedev
. Das freebsd-Handbuch erwähnt MAKEDEV in 4.2BSD (ab 1983). Ich denke, 1983 wäre es genauso logisch,MAKEDEV
über init zu automatisieren wie in 06Gerätedateien sind eigentlich ein Dateisystem-Alias für einen Eintrag in der Gerätetabelle des Kernels. Wenn Sie sich die / dev-Dateien mit "ls -l" ansehen, werden Sie sehen, dass sie eine Hauptgerätenummer und eine Nebengerätenummer haben. Wenn Sie die Dateien aus dem Dateisystem löschen, können Sie sie jederzeit mit den entsprechenden Tools neu erstellen, um die spezielle Datei erneut mit dem Eintrag in der Kernel-Gerätetabelle zu verknüpfen - siehe mknod (1).
quelle
Von diesem Moment an können sie nur von Programmen aufgerufen werden, auf denen diese Geräte bereits geöffnet waren. Es ist also nicht möglich, Dateisysteme abzuhängen. Und mit udev können diese Geräte durch einen Neustart wiederhergestellt werden. Eine seltsame Art, Unix zu lernen.
quelle