「/proc/kcore」ファイルのサイズが物理メモリサイズより大きいのはなぜですか?

「/proc/kcore」ファイルのサイズが物理メモリサイズより大きいのはなぜですか?

procマニュアルから:

/proc/kcore

このファイルはシステムの物理メモリを表し、ELFコアファイル形式で保存されます。この疑似ファイルと削除されていないカーネル(/usr/src/linux/vmlinux)バイナリにより、GDBはすべてのカーネルデータ構造の現在の状態を確認するために使用できます。

ファイルの合計長は、物理メモリ(RAM)サイズに4 KBを加えたサイズです。

私が見ることができるサイズは、/proc/kcore物理メモリ(RAM)サイズに4 KBを加えたサイズです。

しかし、私の場合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です。これは、システムが割り当てることができる最大容量であるためです。

関連情報