Ubuntu 在哪裡儲存頁表?

Ubuntu 在哪裡儲存頁表?

根據內核文件

pagemap 是核心中的一組新介面(自 2.6.25 起),允許使用者空間程式透過讀取 /proc 中的檔案來檢查頁表和相關資訊。

但是,當我在 Ubuntu 18.04.4 LTS 上運行進程 13883 時執行此命令

ll /proc/13883/pagemap

我有

-r-------- 1 ubuntu ubuntu 0 Dec 20 18:05 /proc/13883/pagemap

這似乎表明 Ubuntu 將資訊儲存在其他地方,如果是,那麼它在哪裡?

另一個有趣的觀察是,/proc/13883/maps雖然大小似乎也為零,但實際上有一個表。

...
7ffd62dd7000-7ffd62df8000 rw-p 00000000 00:00 0                          [stack]
7ffd62df9000-7ffd62dfc000 r--p 00000000 00:00 0                          [vvar]
7ffd62dfc000-7ffd62dfe000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall] 

答案1

其中的許多「檔案」/proc只是核心 API 的類似檔案的接口,實際上並不存在於磁碟上。嘗試cat使用這些文件,內核將動態生成信息,您將看到輸出。由於資訊是在需要時產生的,因此這些文件沒有有意義的「大小」。

相關內容