/media/cdrom
ist eine Konvention für den Einhängepunkt , während /dev/cdrom
ist das spezielle Gerät, das auf ersterem montiert werden könnte.
Sie brauchen beide, weil sie unterschiedlichen Zwecken dienen:Die meisten Anwendungen lesen nicht direkt vom speziellen Gerät, sondern können von einem Dateisystem (etwas, das gemountet ist) lesen.
(Danke für so viele Antworten auf meine Frage. Nachdem ich eine Weile im Internet gesucht habe, möchte ich mein eigenes Verständnis teilen.)
Laut hier:
In Unix-ähnlichen Betriebssystemen ist eine Gerätedatei oder spezielle Datei eine Schnittstelle für einen Gerätetreiber die in einem Dateisystem so erscheint, als wäre es eine gewöhnliche Datei.
Laut hier:
Der Mount-Befehl dient zum Anhängen des Dateisystems gefunden auf einem Gerät zum großen Dateibaum.
Ich denke also, dass es hier zwei verschiedene Ebenen der Software-Abstraktion gibt:
-
/dev/cdrom
ist eine spezielle Gerätedatei. Es abstrahiert die CD-ROM-Hardware als Block-IO-Gerät. Diese Abstraktion wird vom Gerätetreiber bereitgestellt. -
/media/cdrom
ist ein Einhängepunkt für ein Dateisystem. Es bietet also eine höhere Abstraktionsebene der CD-ROM-Hardware, d. h. als Dateisystem. Wie das ISO-9660-Dateisystem. Und diese Abstraktion wird vom Dateisystemtreiber bereitgestellt.
Also im Grunde 2 verschiedene Dateispeicherorte für 2 verschiedene Abstraktionsebenen. Und in verschiedenen Szenarien benötigen wir möglicherweise andere. Ich denke, dass andere Betriebssysteme wie Windows auch so unterschiedliche Optionen bieten, nur dass Linux sie in einer einzigen Dateihierarchie vereinheitlicht.
(Ich denke, vielleicht sollte ich ein Experiment machen, indem ich C-Code unter Linux schreibe, um mit beiden /dev/cdrom
zu interagieren und /media/cdrom
. Und sehen, wie alles weitergeht.)
(Ich werde weiter lernen und mein Verständnis entsprechend verfeinern.)
Warum haben wir beide /dev/cdrom
und /media/cdrom
?
Warum haben wir beide /dev/sda2
und /home
?
Grundsätzlich /dev/cdrom
ist eine Datei . Wenn Sie darauf zugreifen, greifen Sie auf die einzelnen Bits und Bytes auf der CD zu (falls vorhanden). Während /media/cdrom
ist ein Ordner . Wenn Sie darauf zugreifen, greifen Sie auf die Dateien zu auf der CD gespeichert.
Ebenso /dev/sda2
stellt den rohen Inhalt der zweiten Partition auf der ersten Festplatte dar. Diese würden Sie direkt anschreiben, wenn Sie z. B. die Partition formatieren möchten. (Die mkfs
Programm öffnet buchstäblich /dev/sda2
oder was auch immer, und schreibt bestimmte Bitmuster darauf.) Dann mounten Sie /dev/sda2
bei, sagen wir, /home
, und jetzt können Sie auf die eigentlichen Dateien zugreifen . Wenn Sie über den Einhängepunkt auf die Dateien zugreifen, liest und schreibt der Dateisystemtreiber die zugrunde liegende Gerätedatei.
Das ist einfach die Art und Weise, wie Unix Dinge tut.