Jak / proc / self jest implementowany w systemie Linux?


19

Majstrowałem przy /procsystemie plików w Linuksie i natrafiłem na /proc/selfsymboliczne łącze do katalogu procesu bieżącego procesu. Chciałbym wiedzieć, jak to jest realizowane. Jednym rozwiązaniem byłoby zmiana tego dowiązania symbolicznego na każdym przełączniku kontekstu , ale jest to oczywiście bardzo kosztowne, ponieważ wymaga dostępu do dysku.

Odpowiedzi:


20

Obecna implementacja to http://lxr.linux.no/linux+v3.2.9/fs/proc/base.c#L2482

System procplików jest całkowicie wirtualny i jest zaimplementowany, więc wewnętrzny VFS readlinkdeleguje się we właściwe miejsce dla specjalnych dowiązań symbolicznych. Tak więc oblicza, na co selfwskazuje, kiedy jest czytany / przemierzany, a nie każdy przełącznik kontekstowy.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.