Warum wird proc als Dateisystem bezeichnet?

20

Das procDateisystem ermöglicht es dem Kernel, Informationen zu jedem auf einem Linux-System ausgeführten Prozess zu übermitteln.

Warum procheißt ein Dateisystem? Es ist kein echtes Dateisystem wie ext4. Es ist nur eine Sammlung von Dateien mit Informationen zu den ausgeführten Prozessen.

Makhlouf GHARBI
quelle

Antworten:

25

/procist ein Dateisystem , weil Benutzerprozesse durch sie mit bekannten Systemaufrufe und Bibliotheksaufrufe navigieren können, wie opendir(), readdir(), chdir()und getcwd(). Selbst open(), read()und die close()Arbeit an einem großen Teil der „Dateien“ , die in erscheinen /proc. In den meisten Fällen /prochandelt es sich um ein Dateisystem, obwohl seine Dateien auf einigen Datenträgern keine Blöcke belegen.

Ich nehme an, wir sollten alle klarstellen, welche Definition des Begriffs "Dateisystem" wir derzeit verwenden. Im Zusammenhang mit ext4 geht es beim Schreiben von „Dateisystem“ wahrscheinlich um die Kombination eines Layouts von Festplattenblöcken, der Angabe von Metadateninformationen zu den Festplattenblöcken, die sich auch irgendwo auf der Festplatte befinden, und des Codes, der sich damit befasst das Layout auf der Festplatte. Im Rahmen der /usr, /tmp, /var/runund so weiter, wir schreiben über das Verständnis oder einen gemeinsamen Konzeptualisierung, wie einige Dinge zu nennen. Diese beiden Verwendungen des Begriffs „Dateisystem“ sind in der Tat sehr unterschiedlich. /procist wirklich die zweite Art von "Dateisystem", wie Sie bemerkt haben.

Bruce Ediger
quelle
9
Es gibt keinen Grund, gruselige Anführungszeichen für Dateien zu verwenden, es /procsei denn, man denkt, dass Dateien immer festplatten- (oder band- oder CD-festplatten- oder was auch immer-festplatten-) gesichert sind Eine Open / Write / Close-Sequenz mit einer "echten" Datei in /home, zum Beispiel, kann nicht immer bedeuten, dass entsprechende Änderungen, die den Status dieser Datei auf der Festplatte dauerhaft widerspiegeln sollen, bereits vorgenommen und abgeschlossen wurden.
Hagen von Eitzen,
10
tl; dr: weil es ein Dateisystem ist?
Jörg W Mittag,
1
Beachten Sie, dass dies auch das Sprichwort "In Linux ist alles eine Datei" erklärt.
dr01
Es ist ein Dateisystem, ähnlich wie der Bildschirm ein "Desktop" ist. Die Computerterminologie ist reich an Metaphern.
Barmar
18

Es ist nur ein Bereich von Dateien, die Informationen enthalten

Aber das ist genau das, was ein Dateisystem ist . Dateisysteme müssen nicht beschreibbar sein und sich nicht im permanenten Speicher befinden.

Hinweis: Es gibt einen Unterschied zwischen procfs(der Pseudo-Dateisystem-Implementierung im Kernel) und seinem herkömmlichen Mount-Punkt /proc. Man könnte theoretisch procfsüberall einsteigen, aber das ist selten. Aus diesem Grund reden die Leute oft darüber, was /procsie wirklich meinen procfs.

procfswird als Pseudo-Dateisystem bezeichnet, da Dateien in a procfsnicht durch die üblichen Dateisystemoperationen erstellt werden, sondern von der Dateisystemimplementierung selbst hinzugefügt und entfernt werden, je nachdem, was an anderer Stelle im Kernel geschieht.

cjm
quelle
also, warum / etc / boot zum Beispiel nicht als Dateisystem bezeichnet werden ???
Makhlouf GHARBI
7
Weil sie Verzeichnisse in einem Dateisystem sind. (Na ja, /bootist häufig ein separates Dateisystem, aber es ist keine separate Art von Dateisystem.)
CJM
9

Wenn Daten so organisiert sind, dass über die für Dateisysteme verwendeten Mechanismen auf sie zugegriffen werden kann, können Sie das Ganze durchaus als Dateisystem bezeichnen.

guntbert
quelle