Bagaimana / proc / self diimplementasikan di Linux?

19

Saya bermain-main dengan sistem /procfile di Linux, dan saya menemukan /proc/self, yang merupakan tautan simbolis ke direktori proses dari proses saat ini. Saya ingin tahu bagaimana penerapannya. Salah satu solusinya adalah dengan mengubah symlink itu pada setiap switch konteks , tapi itu jelas sangat mahal karena melibatkan akses disk.

Vicky Chijwani
sumber

Jawaban:

20

http://lxr.linux.no/linux+v3.2.9/fs/proc/base.c#L2482 adalah implementasi saat ini.

Sistem procfile sepenuhnya virtual, dan diimplementasikan sehingga VFS internal readlinkmendelegasikan ke tempat yang tepat untuk symlink khusus. Jadi, ini menghitung selfpoin apa saat dibaca / dilalui, tidak setiap konteks beralih.

Daniel Pittman
sumber