À quelle fréquence le système de fichiers proc est-il mis à jour sous Linux?


33

À quelle fréquence le procsystème de fichiers est-il mis à jour sous Linux? Est-ce 20 millisecondes (quantum de temps)?


1
+1 C'est une excellente question de devoir à poser aux étudiants. Merci.
Jonathan Ben-Avraham

5
@ JonathanBen-Avraham N'hésitez pas à demander sur la méta si la communauté vous permet de créer un tag "un excellent travail" ... 8-)
Hauke ​​Laging

Réponses:


46

Les informations que vous lisez sur le système de fichiers proc ne sont stockées sur aucun support (pas même dans la RAM), il n’ya donc rien à mettre à jour.

Le but du système de fichiers proc est de permettre à des programmes de l' espace utilisateur pour obtenir ou ensemble des données du noyau en utilisant la sémantique simple et système de fichiers familier ( open, close, read, write, lseek), même si les données sont lues ou écrites ne résident pas sur tous les médias. Cette décision de conception a été jugée meilleure (par exemple, lisible par l'homme et facilement scriptable) pour obtenir et paramétrer des données dont le format ne pouvait pas être spécifié à l'avance, plutôt que de mettre en œuvre quelque chose comme des OID codés en ASN1, qui auraient également bien fonctionné.

Les données que vous voyez lorsque vous lisez le système de fichiers proc sont générées à la volée lorsque vous effectuez une lecture depuis le début d'un fichier. Cela signifie que la lecture entraîne la génération des données par une fonction de rappel du noyau spécifique au fichier en cours de lecture. Faire un lseekdébut de fichier et une nouvelle lecture provoque un autre appel au rappel qui génère à nouveau les données. De même, lorsque vous écrivez dans un fichier accessible en écriture dans le système de fichiers proc, une fonction de rappel est appelée, qui analyse l'entrée et définit les variables du noyau. Les données d'entrée dans sa forme brute ne sont pas stockées.

Ce qui précède n’est qu’une manière un peu plus verbeuse de dire ce que Hauke ​​Laging a dit de manière succincte. Je suggère que vous acceptiez sa réponse.


Si vous avez besoin de la preuve que cette réponse est vraie, essayez de lancer inotify sur un "fichier" ou un répertoire de / proc (ou / sys d'ailleurs) ... c'est dommage, cela rendrait udev complètement inutile si vous pouviez simplement dire un processus inotify simple pour exécuter x quand quelque chose apparaît dans y
technosaurus

24

Il est mis à jour à chaque accès. Vous voyez l'état du noyau à ce moment. C'est pourquoi la taille affichée pour les "fichiers" n'est pas la taille réelle. La taille réelle peut changer et est déterminée au moment où vous accédez au fichier.

Vous pourriez dire, il peut ne pas être mis à jour pendant des jours. Si vous ne le regardez pas. :-)


10
+1 C'est un peu comme si on disait: "Si un arbre tombe dans une forêt et qu'il n'y a personne pour l'entendre, est-ce qu'il émet un son?", C.-à-d. "S'il existe un système de fichiers proc et que personne ne le lit, existe-t-il ? ".
Jonathan Ben-Avraham

@ JonathanBen-Avraham Vous pouvez dire cela à propos de chaque FS, n'est-ce pas? :-) Mais gardez à l'esprit qu'il y a beaucoup plus d'accès à proc qu'il ne le faudrait. Commentez en fstab, redémarrez, et tout l'enfer se déchaîne ...
Hauke ​​Laging

Ce que je voulais dire, c'est que les données d'un système de fichiers sauvegardé sur support existent même lorsque personne ne les lit à un moment donné. Il n’existe pas au moment de la lecture comme proc et sys. Vous avez raison, proc a beaucoup de lecteurs. Cependant, sys est un système de fichiers similaire que vous pouvez commenter avec fstab, du moins sur des systèmes plus petits, tout en maintenant Ok. À votre santé.
Jonathan Ben-Avraham

4
Alors le chat est-il mort ou pas? Regardez et voyez. C'est mort Jim. Pauvre chat.
0x7c0

@HaukeLaging Je n'ai pas le /proc/dans mon fichier fstab ☹
Hi-Angel
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.