Як / proc / self реалізується в Linux?


19

Я розмовляв із /procфайловою системою в Linux, і натрапив /proc/self, що є символічним посиланням на каталог процесів поточного процесу. Я хотів би знати, як це реалізується. Одним із варіантів рішення було б змінити це посилання на кожен контекстний комутатор , але це, очевидно, дуже дорого, оскільки воно передбачає доступ до диска.

Відповіді:


20

http://lxr.linux.no/linux+v3.2.9/fs/proc/base.c#L2482 - це поточна реалізація.

procФайлова система є повністю віртуальної, і реалізована таким чином внутрішніми VFS readlinkделегати на правильне місце для спеціальних сімлінок. Отже, він обчислює, на що selfвказує час його читання / проходження, не кожен контекстний перемикач.


12

Файли в /procдиску не зберігаються на диску, вони генеруються на ходу ядром. Дивіться, що відбувається, коли я відкриваю та читаю з / proc?

Якщо ви схильні до програм, ви можете прочитати реалізацію /procу вихідному коді ядра . Вміст /proc/selfсимволічного посилання генерується функцією, яка заповнює буфер пидом процесу виклику.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.