回答:
はい、それは常にkBです。正確にはKiB(1000ではなく1024バイト)。
少なくともLinux 4.0では(そして、このコードは少なくとも2005年4月以降、ほとんど変更されていません。そのとき、Linusはに切り替えました。git
さらに確認する必要はありません)、その出力はからのものtask_mem
ですfs/proc/task_mmu.c
。数行の抜粋:
seq_printf(m,
"VmPeak:\t%8lu kB\n"
"VmSize:\t%8lu kB\n"
"VmLck:\t%8lu kB\n"
"VmPin:\t%8lu kB\n"
"VmHWM:\t%8lu kB\n"
"VmRSS:\t%8lu kB\n"
"VmData:\t%8lu kB\n"
"VmStk:\t%8lu kB\n"
"VmExe:\t%8lu kB\n"
"VmLib:\t%8lu kB\n"
"VmPTE:\t%8lu kB\n"
"VmPMD:\t%8lu kB\n"
"VmSwap:\t%8lu kB\n",
hiwater_vm << (PAGE_SHIFT-10),
⋮
);
Cを読み取れるかどうかはわかりませんが、その「kB」はハードコードされています。他のユニットを出力するロジックはありません。
fs/proc/meminfo.c
。(また、明確にするためにパッチをマンページに送ってください。)
/proc/meminfo
か?man 5 proc
ここでは正確にはわかりません。