为什么 /proc/meminfo 中的值似乎没有完全映射到系统 RAM?

Eri*_*rry 7 linux memory debian

/proc/meminfo 中 MemTotal 的值没有意义。作为一个人,注视它,它似乎与安装的 RAM 大致对应,但使用它来显示从自动化实用程序安装的 RAM,它似乎不准确且不一致。

对于具有 1G RAM 的系统,我希望 MemTotal 行的值为 1048576 - 1024*1024。但是相反,我看到的是1029392。在另一个4G盒子上,我看到的是3870172,它不是1024的倍数,它甚至不接近1029392*4。在 8G 盒子上,我得到 8128204,它似乎与其他值也没有相关性,也不是 1024 的倍数。

我正在尝试使用此信息在状态网页上报告 RAM。我的解决方法是将它“四舍五入”到最接近的 1G 倍数,但我想了解为什么这些值看起来不一致并且不符合我的期望。

有人可以补充我在这里缺少的东西吗?

编辑:扩展下面接受的答案....

可以在此处找到参考。

那个解释不一致的页面也让我感兴趣的是:

记忆信息:

提供有关内存分配和利用的信息。这因架构和编译选项而异。...

mat*_*tdm 14

来自Documentation/filesystems/proc.txt

MemTotal: Total usable ram (i.e. physical ram minus a few reserved
          bits and the kernel binary code)
Run Code Online (Sandbox Code Playgroud)

所以你去。

附录:

dmesg|grep Memory: 会给你更多:

$ dmesg|grep Memory:
Memory: 3934184k/5177344k available (4434k kernel code, 1091560k absent, 151600k reserved, 7433k data, 920k init)
Run Code Online (Sandbox Code Playgroud)

附录二:

还值得补充的是,/proc 中的几乎所有内容在该文件中都至少有粗略的文档,因此当您遇到类似问题时,这是一个很好的第一站。