proc_pid_pagemap(5) File Formats Manual proc_pid_pagemap(5)

/proc/pid/pagemap - نگاشت صفحات مجازی

/proc/pid/pagemap (از لینوکس 2.6.25)
این فایل نگاشت هر یک از صفحات مجازی فرایند را به فریم‌های صفحه فیزیکی یا ناحیه مبادله (swap) نشان می‌دهد. این فایل حاوی یک مقدار ۶۴ بیتی برای هر صفحه مجازی است، که بیت‌های آن به شرح زیر تنظیم شده‌اند:
63
اگر تنظیم شده باشد، صفحه در RAM موجود است.
62
اگر تنظیم شده باشد، صفحه در فضای مبادله (swap) است.
61 (از لینوکس 3.5)
صفحه یک صفحه نگاشت‌شده به فایل یا یک صفحه ناشناس اشتراکی است.
60–58 (از لینوکس 3.11)
صفر
57 (از لینوکس 5.14)
اگر تنظیم شده باشد، صفحه از طریق userfaultfd(2) در برابر نوشتن محافظت شده است.
56 (از لینوکس 4.2)
صفحه به‌طور انحصاری نگاشت شده است.
55 (از لینوکس 3.11)
ورودی جدول صفحه (PTE) در وضعیت soft-dirty است (پرونده منبع هسته Documentation/admin-guide/mm/soft-dirty.rst را ببینید).
54–0
اگر صفحه در RAM حاضر باشد (بیت ۶۳)، این بیت‌ها شماره فریم صفحه را ارائه می‌دهند، که می‌توان از آن برای شاخص‌گذاری در /proc/kpageflags و /proc/kpagecount استفاده کرد. اگر صفحه در فضای مبادله حاضر باشد (بیت ۶۲)، بیت‌های 4–0 نوع مبادله را مشخص می‌کنند و بیت‌های 54–5 آفست مبادله را کدگذاری می‌نمایند.
پیش از لینوکس 3.11، بیت‌های 60–55 برای کدگذاری لگاریتم در مبنای ۲ اندازه صفحه استفاده می‌شدند.
برای به‌کارگیری کارآمد /proc/pid/pagemap، از /proc/pid/maps برای تعیین اینکه کدام نواحی حافظه واقعاً نگاشت شده‌اند استفاده کرده و با پرش (seek) از نواحی نگاشت‌نشده عبور کنید.
فایل /proc/pid/pagemap تنها در صورتی وجود دارد که گزینه پیکربندی هسته CONFIG_PROC_PAGE_MONITOR فعال باشد.
مجوز دسترسی به این فایل توسط بررسی حالت دسترسی ptrace به نام PTRACE_MODE_READ_FSCREDS کنترل می‌شود؛ ptrace(2) را ببینید.

proc(5)

2026-02-08 Linux man-pages 6.19