Ubuntu는 페이지 테이블을 어디에 저장합니까?

Ubuntu는 페이지 테이블을 어디에 저장합니까?

커널 문서

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보면 커널이 즉시 정보를 생성하고 출력을 볼 수 있습니다. 필요할 때 정보가 생성되므로 이러한 파일에는 의미 있는 "크기"가 없습니다.

관련 정보