Comment / proc / self est-il implémenté sous Linux?


19

Je bricolais avec le /procsystème de fichiers sous Linux, et je suis tombé sur /proc/self, qui est un lien symbolique vers le répertoire de processus du processus actuel. Je voudrais savoir comment il est mis en œuvre. Une solution serait de changer ce lien symbolique sur chaque changement de contexte , mais c'est évidemment très cher car cela implique un accès au disque.

Réponses:


20

http://lxr.linux.no/linux+v3.2.9/fs/proc/base.c#L2482 est l'implémentation actuelle.

Le procsystème de fichiers est entièrement virtuel et est implémenté de sorte que le VFS interne readlinkdélègue au bon endroit pour les liens symboliques spéciaux. Ainsi, il calcule ce qui selfpointe quand il est lu / parcouru, pas tous les changements de contexte.


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.