Laut derKernel-Dokumentation
pagemap ist ein neuer (ab 2.6.25) Satz von Schnittstellen im Kernel, der es Userspace-Programmen ermöglicht, die Seitentabellen und zugehörige Informationen zu untersuchen, indem sie Dateien in /proc lesen.
Wenn ich diesen Befehl jedoch ausführe, während der Prozess 13883 unter Ubuntu 18.04.4 LTS läuft,
ll /proc/13883/pagemap
ich habe
-r-------- 1 ubuntu ubuntu 0 Dec 20 18:05 /proc/13883/pagemap
was darauf hindeutet, dass Ubuntu die Informationen woanders speichert. Wenn ja, wo sind sie?
Eine weitere interessante Beobachtung ist, dass die /proc/13883/maps
Größe ebenfalls Null zu sein scheint, obwohl sich dort tatsächlich eine Tabelle befindet.
...
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]
Antwort1
Viele „Dateien“ /proc
sind lediglich eine dateiähnliche Schnittstelle zu Kernel-APIs und existieren nicht wirklich auf der Festplatte. Probieren Sie cat
diese Dateien aus, und der Kernel generiert sofort Informationen und Sie sehen die Ausgabe. Da die Informationen bei Bedarf generiert werden, haben diese Dateien keine sinnvolle „Größe“.