Warum müssen wir unter Linux mounten?

67

Ich verstehe, was Mounten unter Linux ist, und ich verstehe Gerätedateien. Allerdings verstehe ich nicht, WARUM wir montieren müssen.

Zum Beispiel, wie in der akzeptierten Antwort auf diese Frage erklärt , mit diesem Befehl:

mount /dev/cdrom /media/cdrom

Wir mounten das CD-ROM-Gerät /media/cdromund sind schließlich in der Lage, mit dem folgenden Befehl auf die Dateien der CD-ROM zuzugreifen

ls /media/cdrom

Daraufhin wird der Inhalt der CD-ROM aufgelistet.

Warum überspringen Sie die Montage nicht und gehen Sie wie folgt vor?

ls /dev/cdrom

Und lassen Sie den Inhalt der CD-ROM auflisten. Ich erwarte, dass eine der Antworten lautet : " So ist Linux aufgebaut ". Aber wenn ja, warum wurde es dann so entworfen? Warum nicht /dev/cdromdirekt auf das Verzeichnis zugreifen ? Was ist der eigentliche Zweck der Montage?

Greeso
quelle
2
Sie könnten auch interessiert sein an Probleme mit dem Verständnis des Konzepts der Montage
PM 2Ring
23
Beachten Sie, dass so ziemlich alle Betriebssysteme "mounten". In den meisten Fällen ist es nur transparent. Wenn Sie unter Windows für ein Pendrive die Option "Sicher entfernen" auswählen, führen Sie umount aus, nachdem es vom System automatisch bereitgestellt wurde. Linux isoliert den Benutzer nur nicht so weit vom Prozess, so dass Sie ihn besser anpassen können - sagen wir, die umsdos-Partition unterscheidet sich in keiner sichtbaren Weise von der vfat-Partition, aber wenn Sie sie mount -t umsdoszum Mounten verwenden, Sie haben alle Linux-Berechtigungen, -Besitzverhältnisse, -Sonderdateien, -FIFOS usw. Wenn Sie mount -t vfatsich wie eine einfache Windows-Partition verhalten.
SF.
7
"Ich verstehe, was Mounten unter Linux ist, und ich verstehe Gerätedateien." Anscheinend nicht;)
Leichtigkeit Rennen im Orbit
5
Why not access the /dev/cdrom directory directly?Weil es kein Verzeichnis ist.
Brandon

Antworten:

67

Ein Grund dafür ist, dass der Zugriff auf Blockebene eine etwas niedrigere Ebene ist, als lsdies möglich wäre. /dev/cdromoder dev/sda1Ihr CD-ROM-Laufwerk bzw. Partition 1 Ihrer Festplatte, aber sie implementieren nicht ISO 9660 / ext4 - sie sind nur RAW-Zeiger auf Geräte, die als Gerätedateien bezeichnet werden .

Mount entscheidet unter anderem darüber, wie dieser unformatierte Zugriff verwendet wird - welche Dateisystemlogik-, Treiber- und Kernelmodule ls /mnt/cdromdie Lese- / Schreibvorgänge verwalten oder in welche Blöcke übersetzt werden müssen und wie deren Inhalt zu interpretieren ist Blöcke in Dinge wie file.txt.

In anderen Fällen kann dieser Zugriff auf niedriger Ebene ausreichend sein. Ich habe gerade von seriellen Anschlüssen, USB-Geräten, TTY-Terminals und anderen relativ einfachen Geräten gelesen und darauf geschrieben. Ich würde niemals versuchen, manuell aus / dev / sda1 zu lesen / schreiben, um beispielsweise eine Textdatei zu bearbeiten, da ich im Grunde genommen die ext4-Logik neu implementieren müsste, die unter anderem Folgendes beinhalten könnte: Suchen Sie die Datei-Inodes, und suchen Sie die Speicherblöcke, lesen Sie den vollständigen Block, nehmen Sie meine Änderungen vor, schreiben Sie die vollständigen Blöcke und aktualisieren Sie dann (möglicherweise) den Inode, oder schreiben Sie dies stattdessen alles in das Journal - viel zu schwierig.

Eine Möglichkeit, dies selbst zu sehen, besteht darin, es einfach auszuprobieren:

[root@ArchHP dev]# cd /dev/sda1
bash: cd: /dev/sda1: Not a directory

/devist ein Verzeichnis, und Sie können cdund lsalles, was Sie mögen. /dev/sda1ist kein Verzeichnis; Es ist ein spezieller Dateityp, den der Kernel als "Handle" für dieses Gerät anbietet.

Weitere Informationen finden Sie im Wikipedia-Eintrag zu Gerätedateien .

Ehryk
quelle
4
Ich beschönige einige Details, weil ich denke, dass schlechte Dinge passieren werden, wenn Sie anfangen, auf die Daten zu schreiben, die in / dev / sda1 gespeichert sind, und daher gehe ich davon aus, dass es einige vorbeugende Maßnahmen oder möglicherweise eine Abstraktion gibt, die Sie davon abhalten würden, Dinge zu überschreiben. Aber um es zusammenzufassen, wenn Sie genau wüssten, wie und wo Sie auf die Festplatte schreiben sollen, können Sie dies manuell tun /dev/sda1. Beachten Sie, dass einige Tools direkt mit Raw-Datenträgern interagieren, z. B. swapon/swapoffund dd.
Ehryk
4
Um nur ein bisschen mehr hinzuzufügen, initialisiert das Mounten das Dateisystem und aktiviert damit auch eine ganze Ebene der automatischen Verarbeitung von Eingabe- / Ausgabeoperationen, die für den Benutzer transparent ist (z. B. Zwischenspeichern von Dateien im RAM, Einreihen in die Warteschlange, Halten des Status von geöffneten Dateien) und so weiter). Aus diesem Grund müssen Sie auch das Dateisystem ordnungsgemäß aushängen, um Beschädigungen zu vermeiden (oder zumindest zu synchronisieren). Das Mounten ist auf allen gängigen Plattformen möglich, nicht nur unter Linux. Wenn das Mounten automatisch von der Desktop-Umgebung (KDE oder Gnome) übernommen wird, ist es genauso versteckt wie in MS Windows.
Orion
6
@Ehryk (3 Kommentare höher) Die einzige vorbeugende Maßnahme in einem typischen Linux-System sind die Dateisystemberechtigungen. Mit anderen Worten, Sie müssen das Root-Konto zum Schreiben in eine Gerätedatei verwenden. Wenn Sie dies tun, können Sie cat >/dev/sda1nach Herzenslust und Linux wird Sie nicht aufhalten. (Selbstverständlich würde dies das Dateisystem vollständig beschädigen.)
David Z
5
@psusi Das konnte man unter Windows 95 nicht machen, stimmt. Aber es war auf MS DOS und Windows NT vorhanden (und gut versteckt). Ihr modernes NT-basiertes Windows ermöglicht es Ihnen zweifellos, Partitionen nach Belieben bereitzustellen und die Bereitstellung aufzuheben (sogar in Ordner auf anderen Partitionen und sogar in mehrere Ordner gleichzeitig). In der Regel werden nur alle unbekannten Partitionen bereitgestellt, um standardmäßig Buchstaben zu speichern. Sie können auch auf das Gerät zugreifen, ohne es zu mounten, indem Sie den vollständigen Pfad verwenden (ähnlich wie bei Unix), aber nur, wenn es nicht gesperrt ist - was natürlich der Fall ist, wenn es gerade gemountet ist.
Luaan,
3
@Luaan & psusi Psusi hat das Recht darauf. Aber für fast alle Zwecke und Zwecke ist der Effekt für den Aufrufer der Win32-API im Grunde identisch. (Für die Posix-Kompatibilität gibt es sogar eine Emulation der Mount-Semantik.) Win9x hat tatsächlich das Konzept des Mount, da es immer noch auf DOS ausgeführt wird. Die FAT-Unterstützung wurde in DOS als systemeigener Handler eingebaut, ähnlich wie der NT-Kernel damit umgeht. Aber CD-ROM und Netzwerk-Dateisysteme mussten gemountet werden. (Denken Sie an MSCDEX für CD. Dies stellte den ISO / RockRidge-Dateisystem-Handler zur Verfügung und montierte ihn auf dem Laufwerksbuchstaben.)
Tonny
20

Grundsätzlich und um es einfach auszudrücken, muss das Betriebssystem wissen, wie auf die Dateien auf diesem Gerät zugegriffen werden kann.

mount gibt nicht nur "Ihnen Zugriff auf die Dateien", sondern teilt dem Betriebssystem mit, über welches Dateisystem das Laufwerk verfügt, ob es schreibgeschützt oder schreibgeschützt ist usw.

/dev/cdromist ein Low-Level - Gerät, wissen die Funktionen des Betriebssystems würde nicht , wie sie für den Zugriff auf ... stellen Sie sich (auch eine Audio - CD) in eine bizarr formatiert CD - ROM setzen, wie würden lsauf welche Dateien (falls vorhanden) gibt es sagen die cd-rom ohne es zuerst "einzuhängen"?

Beachten Sie, dass dies in vielen Betriebssystemen automatisch geschieht (bei einigen Distributionen und Grafikschnittstellen sogar unter Linux). Dies bedeutet jedoch nicht, dass andere Betriebssysteme die Laufwerke nicht "mounten".

Jcl
quelle
8

Für die Konsistenz

Stellen Sie sich vor, Sie haben einige Partitionen auf der ersten Festplatte in Ihrem System. Zum Beispiel /dev/sda2. Sie stellen später fest, dass das Laufwerk nicht groß genug ist. Kaufen Sie ein zweites und fügen Sie es dem System hinzu. Plötzlich wird das /dev/sdaund Ihr aktuelles Laufwerk wird /dev/sdb. Ihre Partition ist jetzt /dev/sdb2.

Wenn Sie Ihr vorgeschlagenes System verwenden, müssen Sie alle Skripts, Anwendungen, Einstellungen usw. ändern, die auf die Daten auf Ihrer alten Partition zugreifen, um diese Namensänderung widerzuspiegeln.

Bei der Bereitstellung können Sie jedoch weiterhin denselben Bereitstellungspunkt für dieses umbenannte Laufwerk verwenden. Sie müssten bearbeiten /etc/fstab, um Ihrem System mitzuteilen, dass (zum Beispiel) /media/backupjetzt /dev/sdb2stattdessen ist, aber das ist nur eine Bearbeitung.

Beachten Sie, dass moderne Systeme noch einfacher sind. Anstatt auf das Gerät als /dev/sda2oder zu verweisen /dev/sdb2, weisen sie UUIDSähnliche c5845b43-fe98-499a-bf31-4eccae14261boder freundlichere Bezeichnungen auf, z. B. backupals Referenz für das Gerät bei der Montage. Auf diese Weise ändert sich der Gerätename nicht, wenn ein neues Gerät hinzugefügt wird, wodurch die Verwaltung noch einfacher wird:

# mount LABEL="backup" /media/backup

Zur sicherheit

Wenn ein Gerät bereitgestellt werden muss, kann der Administrator den Zugriff auf das Gerät steuern. Das Gerät kann entfernt werden, wenn es nicht montiert ist, aber nicht, wenn es verwendet wird (es sei denn, Sie möchten Daten verlieren). Wenn Sie ein Windows-Benutzer sind (waren), erinnern Sie sich an das kleine grüne Symbol im Infobereich, das Sie darüber informiert, dass das Entfernen eines USB-Sticks sicher ist? Das ist Windows-Montage und Demontage des Sticks für Sie. Das Prinzip ist also nicht nur ein Unix / Linux-Prinzip.

garethTheRed
quelle
Die universellen IDs sind tatsächlich UUIDs, nicht die GUIDs von Microsoft.
Ruslan
@ Ruslan - so sind sie! Ich hatte zu der Zeit meine MS am Kopf. Vielen Dank - ich habe es geändert.
garethTheRed
6

Ich würde es historische Gründe nennen. Nicht, dass die anderen Antworten falsch wären, aber die Geschichte hat ein bisschen mehr zu bieten.

Windows vergleichen: Windows wurde als Einzelcomputer-Einzelbenutzer-Betriebssystem gestartet. Dieser einzelne Computer hatte wahrscheinlich ein Diskettenlaufwerk und eine Festplatte, keine Netzwerkverbindung, kein USB, kein Nichts. (Windows 3.11 verfügte über native Netzwerkfunktionen, Windows 3.1 nicht .)

Die Art der Einstellung, in die Windows eingebaut wurde, war so einfach, dass man sich nichts ausdenken musste: Einfach jedes Mal alles (alle zwei Geräte) automatisch einbinden, es gibt nicht viele Dinge, die schief gehen könnten.

Im Gegensatz dazu sollte Unix von Anfang an in Servernetzwerken mit mehreren Benutzern ausgeführt werden.

Eine der Entscheidungen beim Unix-Design war, dass das Dateisystem für die Endbenutzer als eine einzige, einheitliche Einheit angezeigt wird, unabhängig davon, auf wie viele Computer die physischen Festplatten verteilt sind, unabhängig davon, welche Art von Festplatte und welche von Dutzenden von Computern der Benutzer würde darauf zugreifen. Der logische Pfad zu den Dateien des Benutzers würde derselbe bleiben, selbst wenn sich der physische Speicherort dieser Dateien über Nacht geändert hätte, z. B. aufgrund von Serverwartung.

Sie abstrahierten das logische Dateisystem und die Pfade zu Dateien von den physischen Geräten, auf denen diese Dateien gespeichert waren. Angenommen, Server A ist normalerweise das Hosting / Home-System, aber Server A muss gewartet werden: Hängen Sie Server A einfach aus und stellen Sie Backup-Server B stattdessen auf / home bereit, und niemand außer den Administratoren würde dies überhaupt bemerken.
(Im Gegensatz zur Windows-Konvention, unterschiedlichen physischen Geräten unterschiedliche Namen zuzuweisen - C :, D: usw. -, die gegen die von Unix angestrebte Transparenz wirkt.)

In einer solchen Umgebung kann man nicht einfach alles in Sichtweite montieren,

In einem großen Netzwerk sind einzelne Festplatten und Computer ständig außer Betrieb. Administratoren müssen in der Lage sein, anzugeben, was wo und wann bereitgestellt wird, um z. B. einen Computer kontrolliert herunterzufahren, während ein anderer Computer transparent das Hosten derselben Dateien übernimmt.

Aus historischer Sicht ist dies der Grund: Windows und Unix stammten aus verschiedenen Bereichen. Man könnte es einen kulturellen Unterschied nennen, wenn man möchte:

  • Unix wurde in einer Umgebung geboren, in der der Administrator das Mounten steuern musste. Von den Dutzenden von Speichergeräten im Netzwerk muss der Administrator entscheiden, was wo und wann bereitgestellt wird.
  • Windows wurde in einer Umgebung geboren, in der es keinen Administrator und nur zwei Speichergeräte gab, und der Benutzer würde wahrscheinlich wissen, ob sich seine Datei auf der Diskette oder der Festplatte befand.
  • (Linux wurde natürlich als Einzelcomputer-Betriebssystem entwickelt, aber es wurde auch von Anfang an explizit entwickelt, um Unix auf einem Heimcomputer so genau wie möglich nachzuahmen.)

In jüngerer Zeit rücken die Betriebssysteme näher zusammen:

  • Linux hat mehr Einzelcomputer und Einzelbenutzer hinzugefügt (z. B. Automounting). wie es in Einzelcomputereinstellungen häufig verwendet wurde.
  • Windows hat mehr Sicherheit, Netzwerkbetrieb, Unterstützung für mehrere Benutzer usw. hinzugefügt. Als die Vernetzung allgegenwärtiger wurde und Microsoft begann, auch ein Betriebssystem für Server zu entwickeln.

Es ist jedoch immer noch leicht zu sagen, dass die beiden das Ergebnis unterschiedlicher Traditionen sind.

jg-faustus
quelle
1
Es ist nicht nur das. Die Geräte sind Abstraktionen auf niedriger Ebene, die von Dateisystemtreibern (und möglicherweise anderer Systemsoftware) verwendet werden können. Unix wurde als Betriebssystem für Programmierer von Betriebssystemen entwickelt. Zum Beispiel die Programmierer dieser Dateisystemtreiber. Aus diesem Grund werden diese Abstraktionen auf niedriger Ebene dem Benutzer zugänglich gemacht.
Reinierpost
5

Die derzeitige Anordnung bietet mehrere Vorteile. Sie können in die Vorteile von Blockspezialdateien und die Vorteile von Mountpunkten eingeteilt werden.

Spezielle Dateien sind Dateien, die Geräte darstellen. Eine der Ideen, auf denen Unix aufbaut, ist, dass alles eine Datei ist. Dies macht viele Dinge einfach, zum Beispiel besteht die Benutzerinteraktion nur aus dem Lesen und Schreiben von Dateien auf einem tty-Gerät, bei dem es sich um eine spezielle Zeichendatei handelt. Ebenso ist das Überprüfen auf fehlerhafte Blöcke, Partitionieren oder Formatieren einer Festplatte nur eine Dateioperation. Es spielt keine Rolle, ob es sich bei der Festplatte um mfm, ide, scsi, fiberchanel oder etwas anderem handelt, es handelt sich lediglich um eine Datei.

Auf der anderen Seite möchten Sie möglicherweise nicht die gesamte Festplatte oder Partition, sondern nur die Dateien, und in vielen Fällen mehr Dateien, als auf eine Festplatte passen. Wir haben also Mountpoints. Mit einem Mountpoint können Sie eine ganze Festplatte (oder Partition) in einem Verzeichnis ablegen. In meinen Slackware-Tagen, als eine gute Festplatte ein paar hundert MB groß war, war es üblich, die CD als / usr und die Festplatte als /, / usr / local zu verwenden und zu tauschen. Oder Sie könnten / auf einem Laufwerk und / nach Hause auf einem anderen setzen.

Jetzt ist mir aufgefallen, dass Sie erwähnt haben, dass Sie Ihre CD auf / media / cdrom mounten. Dies ist praktisch für Computer mit nur einem CD-ROM-Laufwerk, aber was ist, wenn Sie mehr als ein Laufwerk haben? wo solltest du den zweiten montieren? oder der dritte? oder der fünfzehnte? Sie könnten sicherlich / media / cdrom2 usw. verwenden. Oder Sie könnten es auf / src / samba / resources / windows-install oder / var / www mounten, oder wo immer es sinnvoll war.

hildred
quelle
Ich denke, OP bedeutete, warum man nicht das Ganze mountkomplett überspringt und einfach /dev/cd0, /dev/cd2, /dev/sda1, /dev/sda2direkt mit ihm interagiert - jeder hat bereits ein bestimmtes 'Verzeichnis'.
Ehryk
1
Sie haben recht, aber würden Sie wirklich / dev / sdb9 / share / doc / package / README als guten Pfad finden? sogar d: / share / doc / package / README ist besser, aber / usr / share / doc / package / README hat Semantik! das ist der Wert eines Mountpunktes.
Hildred
3
Ich vermute, dass die semantische Verwendung später als nützliches Nebenprodukt der Notwendigkeit entstanden ist, Code zwischen das Verzeichnissystem und den rohen Dateizeiger auf das Gerät zu kopieren, da die Verwendung von cd / ls / nano / alles andere viel einfacher ist als raw schreibt: dd if=/file of=/dev/sda2 bs=4096 skip=382765832 count=84756geschweige denn die zugehörige Aktualisierung von Inode / FAT / Journal.
Ehryk
(Einige Linux-Masochisten würden wahrscheinlich / dev / sdb9 als Arbeitsverzeichnis lieben, da bin ich mir sicher)
Ehryk
2
Auf meinem ersten Computer lief cp / m auf 2 8 "-Disketten. Es wurden überhaupt keine Unterverzeichnisse unterstützt. Ein Verzeichnis pro Platte. Ein Pfad sah aus wie b: name.ext. Die Idee der semantischen Benennung war bereits etabliert. Selbst Bandsysteme benutzte Dateinamen. UNIX hatte die Idee von Laufwerksbuchstaben für Mountpoints bereits verworfen. Übrigens, @Ehryk, wussten Sie, dass Sie ein Laufwerk in einem Verzeichnis nicht nur unter Windows, sondern auch unter DOS mounten können? Ich habe es unter MS-DOS 5 gemacht . Außerdem, wenn ich für einen Mann Seite suche ich möchte , welchen Computer es auf viel weniger ist , welches Laufwerk nicht haben zu erinnern.
Hildred
5

Der Fragentitel fragt: Warum müssen wir auf Linux mounten?

Eine Möglichkeit, diese Frage zu interpretieren: Warum müssen wir explizite mountBefehle ausgeben , um Dateisysteme unter Linux verfügbar zu machen?

Die Antwort: Wir nicht.

Sie müssen Dateisysteme nicht explizit mounten, sondern können dies automatisch veranlassen. Dies wird von Linux-Distributionen bereits für die meisten Geräte durchgeführt, genau wie bei Windows und Mac.

Das wollten Sie also wahrscheinlich nicht fragen.

Eine zweite Interpretation: Warum müssen wir manchmal explizite mountBefehle ausgeben , um Dateisysteme unter Linux verfügbar zu machen? Warum lässt du das Betriebssystem es nicht immer für uns tun und verbirgst es vor dem Benutzer?

Dies ist die Frage, die ich im Fragentext lese, wenn Sie fragen:

Überspringen Sie die Montage, und führen Sie die folgenden Schritte aus

ls /dev/cdrom

und ist der Inhalt der CD-ROM aufgeführt?

Vermutlich meinst du: Warum nicht einfach dieses Kommando was machen lassen

ls /media/cdrom

macht jetzt?

In diesem Fall /dev/cdromwäre es ein Verzeichnisbaum, keine Gerätedatei. Ihre eigentliche Frage scheint also zu sein: Warum haben Sie überhaupt eine Gerätedatei?

Ich möchte eine Antwort zu den bereits gegebenen hinzufügen.

Warum sehen Benutzer Gerätedateien?

Wann immer Sie eine CD-ROM oder ein anderes Gerät verwenden, auf dem Dateien gespeichert sind, wird eine Software verwendet, die alles, was sich auf Ihrer CD-ROM befindet, als Verzeichnisbaum von Dateien interpretiert. Es wird immer dann aufgerufen, wenn Sie lseinen Befehl oder eine andere Anwendung verwenden, die auf die Dateien auf Ihrer CD-ROM zugreift. Diese Software ist der Dateisystemtreiber für das jeweilige Dateisystem, mit dem die Dateien auf Ihre CD-ROM geschrieben werden. Wann immer Sie Dateien in einem Dateisystem auflisten, lesen oder schreiben, muss diese Software sicherstellen, dass die entsprechenden Lese- und Schreibvorgänge auf niedriger Ebene auf dem betreffenden Gerät ausgeführt werden. Wann immer Sie mountein Dateisystem verwenden, teilen Sie dem System mit, welcher Dateisystemtreiber für das Gerät verwendet werden soll. Ob Sie dies explizit mit einemmountBefehl, oder überlassen Sie es dem Betriebssystem, um automatisch ausgeführt zu werden, es muss ausgeführt werden, und natürlich muss die Dateisystem-Treibersoftware an erster Stelle vorhanden sein.

Wie erledigt ein Dateisystemtreiber seine Arbeit? Die Antwort: Das geschieht durch Lesen und Schreiben in die Gerätedatei. Warum? Die Antwort, wie Sie bereits sagten: Unix wurde so konzipiert. In Unix sind Gerätedateien die übliche Abstraktion auf niedriger Ebene für Geräte. Die wirklich gerätespezifische Software (der Gerätetreiber) für ein bestimmtes Gerät soll das Öffnen, Schließen, Lesen und Schreiben auf dem Gerät als Operationen auf der Gerätedatei implementieren. Auf diese Weise muss übergeordnete Software (z. B. ein Dateisystemtreiber) nicht so viel über die interne Funktionsweise einzelner Geräte wissen. Die Gerätetreiber auf niedriger Ebene und die Dateisystemtreiber können von verschiedenen Personen getrennt geschrieben werden, sofern sie sich auf eine gemeinsame Art der Schnittstelle einigen, und für diese Zwecke sind die Gerätedateien bestimmt.

Daher benötigen Dateisystemtreiber die Gerätedateien.

Aber warum sehen wir, normale Benutzer, die Gerätedateien? Die Antwort ist, dass Unix für die Verwendung durch Programmierer von Betriebssystemen entwickelt wurde. Es wurde entwickelt, um Benutzern das Schreiben von Gerätetreibern und Dateisystemtreibern zu ermöglichen. So werden sie geschrieben.

Gleiches gilt für Linux: Sie können Ihren eigenen Dateisystemtreiber (oder Gerätetreiber) schreiben, installieren und dann verwenden. Es macht Linux (oder eine andere Variante von Unix) leicht erweiterbar (und es ist tatsächlich der Grund, warum Linux gestartet wurde): Wenn eine neue Hardware auf den Markt kommt oder eine neue, intelligentere Methode zum Implementieren eines Dateisystems entwickelt wird kann jemand den Code schreiben, um ihn zu unterstützen, zum Laufen zu bringen und ihn zu Linux beizutragen.

Gerätedateien erleichtern dies.

reinierpost
quelle
1
sehr gut erklärt
Shailendra
4

Viele Datenbank-Engines können direkt mit Raw-Festplatten oder Partitionen arbeiten. Zum Beispiel MySQL:

http://dev.mysql.com/doc/refman/5.7/de/innodb-raw-devices.html

Dies vermeidet den Aufwand beim Durchlaufen von Dateisystemtreibern, wenn die DB-Engine nur eine große Datei benötigt, die die Festplatte füllt.

Tom Robinson
quelle
3

Denn es /dev/cdromist ein Gerät, wohingegen /media/cdromes ein Dateisystem ist . Sie müssen erstere auf letzteren mounten, um auf die Dateien auf der CD-ROM zugreifen zu können.

Ihr Betriebssystem hängt das Root- und Benutzer-Dateisystem bereits automatisch von Ihrem physischen Festplattengerät ein, wenn Sie Ihren Computer starten. Dies fügt lediglich weitere zu verwendende Dateisysteme hinzu.

Alle Betriebssysteme tun dies - einige (wie Windows, wenn es eine CD-ROM anhängt D:) tun dies jedoch transparent. Linux überlässt es Ihnen, damit Sie mehr Kontrolle über den Prozess haben.

Leichtigkeitsrennen im Orbit
quelle
2
Ich muss Ihrer Formulierung nicht zustimmen. /dev/cdromist eine Gerätedatei (mit speziellen Funktionen, die es uns ermöglichen, auf einfache Weise eine E / A-Kommunikation vom / zum zugeordneten Gerät herzustellen). /media/cdromist ein Verzeichnis, aber im Grunde ist es eine andere Datei (denken Sie daran, dass unter Linux alles eine Datei ist, einschließlich der Verzeichnisse). Jetzt haben wir mounteine spezielle Möglichkeit, den Inhalt der Gerätedatei als Dateisystem anzuzeigen. Mein Verständnis des letzten Gefühls beruht auf dem Lesen der obigen Antworten.
Greeso
@Greeso: Ich stehe zu meiner Antwort.
Leichtigkeitsrennen im Orbit
0

Dies liegt daran, dass bei vielen Medien für Desktop- und Laptop-Benutzeroberflächen Unklarheiten darüber bestehen, was zu tun ist, wenn die Medien eingelegt werden, da das Einlegen der Festplatte in die physische Box, mit der der Benutzer interagiert, nicht anders ist , setzen Sie es in ein Gerät neben dem Computer ein, der über eine Netzwerkverbindung verfügt.

Grundsätzlich muss die Benutzeroberfläche für Medien die beiden Arten von potenziellen Mount-Ereignissen ähnlich behandeln, und es gibt keine gute Möglichkeit für Computer, Netzwerkmounts so intuitiv wie Netzwerkmounts mit anderen Benutzeroberflächen für Computer zu handhaben. B. Smartphones, Tablets und tragbare Computer, in die keine physischen Medien eingelegt werden können. (Beachten Sie, wie schrecklich das iPhone-Interface für den Wechsel von SIM-Karten ist, die eine Art von physischen Medien haben, die iOS-Geräte in sie eingelegt haben.

Beachten Sie auch, dass bei anderen gängigen Ansätzen für Benutzeroberflächen für diese Art von physischer Box (z. B. Windows 98, Windows 8, Mac OS X 10.2 (Jaguar) und Mac OS X 10.9 (Mavericks)) dieselben Probleme auftreten und verwenden Sie zusätzliche GUI-Dialogfelder, um mögliche Verwirrungen zu beseitigen (z. B. ist Windows 8 normalerweise so konfiguriert, dass bei jeder neu eingelegten CD gefragt wird, ob sie als Dateisystem, Musikmedium oder gegebenenfalls als Sammlung von MP4-Videos bereitgestellt werden soll ). Es gibt keinen Grund, warum eines dieser Benutzerdialogfelder nicht mit Linux oder anderen UNIX-Betriebssystemen verwendet werden kann.

Charles Stewart
quelle