/proc/selfはLinuxでどのように実装されていますか?

/proc/selfはLinuxでどのように実装されていますか?

/procLinuxでファイルシステムを変更するとき、/proc/self現在のプロセスのプロセスディレクトリを指すシンボリックリンクであることがわかりました。どのように実装されるのか知りたいです。 1つの解決策はシンボリックリンクを変更することですすべてのコンテキスト切り替えしかし、これはディスクアクセスに関連しているため、非常に費用がかかります。

ベストアンサー1

http://lxr.linux.no/linux+v3.2.9/fs/proc/base.c#L2482現在の実装です。

ファイルシステムはproc完全に仮想であり、readlink特別なシンボリックリンクの正しい場所の内部 VFS デリゲートとして実装されます。したがって、selfすべてのコンテキスト遷移ではなく読み取り/巡回時に指す内容を計算します。

おすすめ記事