/proc/pid/map_files/ -
فایلهای
نگاشتشده
در حافظه
- /proc/pid/map_files/ (از
لینوکس 3.3)
- این
زیردایرکتوری
حاوی
مدخلهایی
متناظر با
فایلهای
نگاشتشده
در حافظه
است
(ببینید: mmap(2)).
مدخلها بر
اساس جفت
نشانی آغاز
و پایان
ناحیهٔ
حافظه
(بیانشده
بهصورت
اعداد
هگزادسیمال)
نامگذاری
شدهاند، و
پیوندهایی
نمادین به
خود
فایلهای
نگاشتشده
هستند. در
اینجا
مثالی
آورده شده
است، که
خروجی آن
برای جای
گرفتن در
نمایشگر ۸۰
ستونی
بازآرایی و
خطشکنی
شده است:
-
# ls -l /proc/self/map_files/
lr-------- 1 root root 64 Apr 16 21:31
3252e00000-3252e20000 -> /usr/lib64/ld-2.15.so
...
- اگرچه این
مدخلها
برای نواحی
حافظهای
که با پرچم
MAP_FILE نگاشت
شدهاند
حضور
دارند،
شیوهٔ
پیادهسازی
حافظهٔ
اشتراکی
ناشناس
(نواحی
ایجادشده
با
پرچمهای
MAP_ANON | MAP_SHARED) در
لینوکس
بدین
معناست که
چنین
نواحیای
نیز در این
دایرکتوری
ظاهر
میشوند. در
اینجا
مثالی
آورده شده
است که در
آن فایل
هدف، موردِ
حذفشدهٔ
/dev/zero است:
-
lrw------- 1 root root 64 Apr 16 21:33
7fc075d2f000-7fc075e6f000 -> /dev/zero (deleted)
- مجوز
دسترسی به
این فایل
توسط بررسی
حالت
دسترسی ptrace
یعنی PTRACE_MODE_READ_FSCREDS
اداره
میشود؛
ببینید: ptrace(2).
- تا لینوکس
4.3، این
دایرکتوری
تنها در
صورتی ظاهر
میشد که
گزینهٔ
پیکربندی
هستهٔ CONFIG_CHECKPOINT_RESTORE
فعال باشد.
- برای
خواندن
محتوای
پیوندهای
نمادین در
این
دایرکتوری
به
قابلیتها
نیاز است:
پیش از
لینوکس 5.9،
فرایند
خواننده به
CAP_SYS_ADMIN در فضای
نام کاربری
اولیه نیاز
دارد؛ از
لینوکس 5.9 به
بعد،
فرایند
خواننده
باید دارای
CAP_SYS_ADMIN یا CAP_CHECKPOINT_RESTORE
در فضای نام
کاربری
اولیه (یعنی
ریشه) باشد.