向 Linux 系统添加了 2 个 DIMM,但在“总内存”中未显示

向 Linux 系统添加了 2 个 DIMM,但在“总内存”中未显示

我有一台装有 Arch Linux 的旧电脑

$ uname -a
Linux desktop 4.1.4-1-ARCH #1 SMP PREEMPT Mon Aug 3 21:53:10 UTC 2015 i686 GNU/Linux

带有 2GB RAM。我添加了 2x1Gb DDR2 DIMM,现在系统在所有存储体中都有 DIMM(4x1GB)。BIOS 中检测到了新内存:

System Memory Available  4024 MB

还有输出瘦身显示所有装有 1GB DIMM 的插槽

但总内存/proc/meminfo仅显示 2GB:

$ grep MemTotal /proc/meminfo 
MemTotal:        2058968 kB

我尝试编辑 GRUB 中的内核参数并添加 mem=4G,但总内存仍然是 2GB。

还有什么想法可以尝试吗?

答案1

我考虑安装 linux-pae,但最终决定安装在 Arch Linux 中升级到 64 位。这是一个相当简单的过程,不需要重新安装整个系统。现在总内存为 4GB:

$ grep MemTotal /proc/meminfo 
MemTotal:        3977736 kB

答案2

首先需要了解“物理地址空间”的概念。

计算机中任何“看起来像内存”的硬件都需要映射为物理地址空间的一部分。这包括 RAM,但也包括 IO 设备。特别是一些显卡需要大量的物理地址空间。

当 BIOS 初始化硬件时,它会确定每个硬件的物理地址。

由于 RAM 不是地址空间的唯一用户,因此使用 4GB 系统上的所有 RAM 需要使用超过 32 位的物理地址。

要实现这一点需要 CPU、芯片组和操作系统的支持。

  • CPU 已经得到支持多年了(自从奔腾专业版以来)。
  • 台式机和笔记本电脑芯片组大多在 2000 年代中期增加了支持。
  • 在 Linux 上,您需要 64 位内核或使用 PAE 构建的 32 位内核。在 Windows 上,您需要 64 位版本的操作系统、服务器版本或破解版内核。

在 4GB 地址空间限制下,究竟有多少内存可用取决于机器中的硬件以及 BIOS 如何决定映射内容。某些 BIOS 可能具有“将内存最大化到 4GB 以下”或类似选项,这可能会增加地址空间限制为 4GB 的操作系统的可用内存。

相关内容