СогласноДокументация ядра
pagemap — это новый (начиная с версии 2.6.25) набор интерфейсов в ядре, который позволяет программам пользовательского пространства проверять таблицы страниц и связанную с ними информацию, читая файлы в /proc.
Однако, когда я выполнил эту команду, когда процесс 13883 запущен на Ubuntu 18.04.4 LTS
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
эти файлы, и ядро сгенерирует информацию на лету, и вы увидите вывод. Поскольку информация генерируется по мере необходимости, эти файлы не имеют значимого "размера".