Pourquoi proc est-il appelé un système de fichiers?
20
Le procsystème de fichiers permet au noyau de communiquer des informations sur chaque processus en cours d'exécution sur un système Linux.
Pourquoi procs'appelle un système de fichiers? Ce n'est pas un vrai système de fichiers comme ext4. Il s'agit simplement d'une collection de fichiers contenant des informations sur les processus en cours d'exécution.
/procest un système de fichiers parce que les processus utilisateur peut naviguer à travers avec les appels système familiers et les appels aux bibliothèques, comme opendir(), readdir(), chdir()et getcwd(). Même open(), read()et close()travaillez sur beaucoup de "fichiers" qui apparaissent dans /proc. Pour la plupart des intentions et presque à toutes fins, /procest un système de fichiers, malgré le fait que ses fichiers n'occupent pas de blocs sur certains disques.
Je suppose que nous devrions tous clarifier la définition du terme «système de fichiers» que nous utilisons actuellement. Dans le contexte d'ext4, lorsque nous écrivons «système de fichiers», nous parlons probablement de la combinaison d'une disposition des blocs de disque, de la spécification des informations de métadonnées sur les blocs de disque qui résident également quelque part sur le disque et du code qui traite de cette disposition sur disque. Dans le cadre de /usr, /tmp, /var/runet ainsi de suite, nous écrivons au sujet d' une compréhension ou une conceptualisation partagée de la façon de nommer certaines choses. Ces deux utilisations du terme «système de fichiers» sont en effet assez différentes. /procest vraiment le deuxième type de «système de fichiers», comme vous l'avez noté.
Il n'y a aucune raison d'utiliser des guillemets effrayants pour les fichiers à /procmoins que l'on ne pense que les fichiers sont toujours sauvegardés sur disque (ou sur bande, ou sur CD, ou quoi que ce soit9. Ils ne le sont pas toujours - pensez aux disques RAM. une séquence d'ouverture / écriture / fermeture avec un "vrai" fichier dans /home, disons, ne signifie pas toujours que les changements correspondants destinés à refléter en permanence l'état de ce fichier sur le stockage sur disque ont déjà été effectués et terminés.
Hagen von Eitzen
10
tl; dr: parce que c'est un système de fichiers?
Jörg W Mittag
1
Notez que cela explique également le dicton "Sous Linux, tout est un fichier".
dr01
C'est un système de fichiers de la même manière que l'écran est un "bureau". La terminologie informatique regorge de métaphores.
Barmar
18
c'est juste une zone de fichiers contenant des informations
Mais c'est exactement ce qu'est un système de fichiers est . Les systèmes de fichiers n'ont pas besoin d'être inscriptibles et ils ne doivent pas résider sur un stockage permanent.
Remarque: Il y a une distinction entre procfs(l'implémentation du pseudo système de fichiers dans le noyau) et son point de montage conventionnel /proc. Vous pourriez en théorie monter un procfsn'importe où, mais c'est rare. Pour cette raison, les gens parlent souvent de ce /procqu'ils veulent vraiment direprocfs .
procfsest appelé un pseudo système de fichiers car les fichiers d'un procfsne sont pas créés par les opérations habituelles du système de fichiers, mais sont ajoutés et supprimés par l'implémentation du système de fichiers elle-même en fonction de ce qui se passe ailleurs dans le noyau.
alors pourquoi / etc / boot par exemple ne sont pas appelés système de fichiers ???
Makhlouf GHARBI
7
Parce que ce sont des répertoires dans un système de fichiers. (Eh bien, /bootc'est souvent un système de fichiers séparé, mais ce n'est pas un type de système de fichiers distinct .)
cjm
9
Si les données sont organisées de manière à pouvoir être accessibles via les mécanismes utilisés pour les systèmes de fichiers, vous pouvez tout appeler un système de fichiers.
/proc
moins que l'on ne pense que les fichiers sont toujours sauvegardés sur disque (ou sur bande, ou sur CD, ou quoi que ce soit9. Ils ne le sont pas toujours - pensez aux disques RAM. une séquence d'ouverture / écriture / fermeture avec un "vrai" fichier dans/home
, disons, ne signifie pas toujours que les changements correspondants destinés à refléter en permanence l'état de ce fichier sur le stockage sur disque ont déjà été effectués et terminés.Mais c'est exactement ce qu'est un système de fichiers est . Les systèmes de fichiers n'ont pas besoin d'être inscriptibles et ils ne doivent pas résider sur un stockage permanent.
Remarque: Il y a une distinction entre
procfs
(l'implémentation du pseudo système de fichiers dans le noyau) et son point de montage conventionnel/proc
. Vous pourriez en théorie monter unprocfs
n'importe où, mais c'est rare. Pour cette raison, les gens parlent souvent de ce/proc
qu'ils veulent vraiment direprocfs
.procfs
est appelé un pseudo système de fichiers car les fichiers d'unprocfs
ne sont pas créés par les opérations habituelles du système de fichiers, mais sont ajoutés et supprimés par l'implémentation du système de fichiers elle-même en fonction de ce qui se passe ailleurs dans le noyau.la source
/boot
c'est souvent un système de fichiers séparé, mais ce n'est pas un type de système de fichiers distinct .)Si les données sont organisées de manière à pouvoir être accessibles via les mécanismes utilisés pour les systèmes de fichiers, vous pouvez tout appeler un système de fichiers.
la source