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.

Vicky Chijwani
la source

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.

Daniel Pittman
la source