Perché proc è chiamato un file system?


20

Il procfile system consente al kernel di comunicare informazioni su ciascun processo in esecuzione su un sistema Linux.

Perché si procchiama un file system? Non è un vero file system come ext4. È solo una raccolta di file che contiene informazioni sui processi in esecuzione.

Risposte:


25

/procè un file system perché i processi utente può navigare attraverso di essa con chiamate di sistema familiari e chiamate di libreria, come opendir(), readdir(), chdir()e getcwd(). Anche open(), read()e close()lavorare su un sacco di "file" che appaiono in /proc. Per la maggior parte degli scopi e quasi tutti gli scopi, /procè un filesystem, nonostante il fatto che i suoi file non occupino blocchi su alcuni dischi.

Suppongo che dovremmo chiarire tutti quale definizione del termine "file system" stiamo attualmente utilizzando. Nel contesto di ext4, quando scriviamo "file system", probabilmente stiamo parlando della combinazione di un layout di blocchi del disco, la specifica delle informazioni sui metadati sui blocchi del disco che risiede anche da qualche parte sul disco e il codice che si occupa quel layout su disco. Nel contesto /usr, /tmp, /var/rune così via, stiamo scrivendo su una comprensione o di una concettualizzazione condivisa di come denominare alcune cose. Questi due usi del termine "file system" sono in effetti abbastanza diversi. /procè davvero il secondo tipo di "file system", come hai notato.


9
Non vi è alcun motivo di utilizzare le query spaventose per i file a /procmeno che non si pensi che i file siano sempre sottoposti a backup su disco (o su nastro, o su CD o qualunque altro con supporto 9. Non sono sempre - si pensi ai dischi RAM. Inoltre, anche una sequenza di apertura / scrittura / chiusura con un file "reale" /home, per esempio, potrebbe non significare sempre che le corrispondenti modifiche intese a riflettere permanentemente lo stato di questo file, mentre l'archiviazione del disco sono già state fatte e completate.
Hagen von Eitzen,

10
tl; dr: perché è un sistema di file?
Jörg W Mittag,

1
Nota che questo spiega anche il detto "In Linux, tutto è un file".
dr01,

È un file system nello stesso modo in cui lo schermo è un "desktop". La terminologia informatica abbonda di metafore.
Barmar,

18

è solo un'area di file che contiene informazioni

Ma questo è esattamente ciò che un filesystem è . I filesystem non devono essere scrivibili e non devono risiedere in archivi permanenti.

Nota: esiste una distinzione tra procfs(l'implementazione dello pseudo filesystem nel kernel) e il suo mount point convenzionale /proc. In teoria potresti montare procfsovunque, ma è raro. Per questo motivo, le persone spesso parlano di /procquando realmente intendono procfs.

procfsè chiamato pseudo filesystem perché i file in a procfsnon sono creati dalle normali operazioni del filesystem, ma vengono aggiunti e rimossi dall'implementazione del filesystem stesso in base a ciò che accade altrove nel kernel.


quindi perché / etc / boot, ad esempio, non sono chiamati file system ???
Makhlouf GHARBI,

7
Perché sono directory in un filesystem. (Beh, /bootè spesso un filesystem separato, ma non è un tipo separato di filesystem.)
cjm

9

Se i dati sono organizzati in modo tale da essere accessibili tramite i meccanismi utilizzati per i file system, è possibile chiamare l'intero file system.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.