pagemap은 사용자 공간 프로그램이 /proc에 있는 파일을 읽어 페이지 테이블과 관련 정보를 검사할 수 있게 해주는 커널의 새로운(2.6.25 버전) 인터페이스 세트입니다.
그런데 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
크기가 0인 것처럼 보이지만 실제로는 테이블이 있다는 것입니다.
...
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
보면 커널이 즉시 정보를 생성하고 출력을 볼 수 있습니다. 필요할 때 정보가 생성되므로 이러한 파일에는 의미 있는 "크기"가 없습니다.