"/proc/kcore" 파일의 크기가 물리적 메모리 크기보다 큰 이유는 무엇입니까?

"/proc/kcore" 파일의 크기가 물리적 메모리 크기보다 큰 이유는 무엇입니까?

proc매뉴얼 에서 :

/proc/kcore

이 파일은 시스템의 물리적 메모리를 나타내며 ELF 코어 파일 형식으로 저장됩니다. 이 의사 파일과 제거되지 않은 커널(/usr/src/linux/vmlinux) 바이너리를 통해 GDB는 모든 커널 데이터 구조의 현재 상태를 검사하는 데 사용할 수 있습니다.

파일의 총 길이는 물리적 메모리(RAM) 크기에 4KB를 더한 크기입니다.

제가 볼 수 있는 크기는 /proc/kcore물리적 메모리(RAM) 크기에 4KB를 더한 크기입니다.

하지만 내 경우 SuSE Linux:

# ls -lt  --block-size=M /proc/kcore
-r-------- 1 root root 134217727M Nov 15 21:09 /proc/kcore

    # cat /proc/meminfo
MemTotal:         792680 kB
MemFree:           79960 kB
MemAvailable:     351664 kB
Buffers:              40 kB
Cached:           246588 kB
SwapCached:          212 kB
Active:           282992 kB
Inactive:         292896 kB
Active(anon):     122652 kB
Inactive(anon):   214164 kB
Active(file):     160340 kB
Inactive(file):    78732 kB
Unevictable:         100 kB
Mlocked:             100 kB
SwapTotal:       1532924 kB
SwapFree:        1531088 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        329148 kB
Mapped:            71888 kB
Shmem:              7556 kB
Slab:              63088 kB
SReclaimable:      46300 kB
SUnreclaim:        16788 kB
KernelStack:        1888 kB
PageTables:            0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1929264 kB
Committed_AS:    1451492 kB
VmallocTotal:   34359738367 kB
VmallocUsed:        7580 kB
VmallocChunk:   34359726080 kB
HardwareCorrupted:     0 kB
DirectMap4k:      867568 kB
DirectMap2M:           0 kB

파일 크기가 /proc/kcore실제 메모리 크기보다 훨씬 큰 이유는 무엇입니까?

답변1

kcore커널에 RAM이 가상으로 할당되어 있습니까? 64비트 시스템에서 이 크기에 대한 절대적인 제한은 128T입니다. 이는 시스템이 할당할 수 있는 최대 용량이기 때문입니다.

관련 정보