我知道对于 32 位操作系统,每个进程的可寻址内存空间为“4G”(用户空间中可能只有 3G...)。如果我有 8G RAM,所有进程仍然可以使用(共享)这 8G 内存,但每个进程的最大内存限制为 4G,这是正确的吗?或者整个系统只能看到和使用 8G 中的 4G,因此在 32 位操作系统上拥有 8G RAM 与拥有 4G RAM 是一样的吗?
答案1
在 32 位系统上,应用程序可以使用所谓的PAE
(物理地址扩展)支持。
答案2
在大多数 Linux 发行版中,您需要一个可以处理额外 RAM 的修补内核。它通常是一个“bigmem”内核。
答案3
您说得对,Linux 下的进程在用户空间中被限制为 3G。
作为 32 位操作系统,这意味着任何时候都只有 2^32 个地址可用(因此是 4G)。使用 PAE 等技术,您最多可以拥有 2^36 字节的物理 RAM。
一次映射“仅” 2^32 个地址的任务由 MMU(内存管理单元)使用 TLB 条目(转换后备缓冲区)处理。但是,操作系统的作用是告诉 MMU 加载/驱逐 TLB 条目。