highmem 与 64 位 Linux 相关吗?如果没有,为什么?

highmem 与 64 位 Linux 相关吗?如果没有,为什么?

我在网上的某个地方读到,64 位 Linux 内核没有 highmem 问题。我没有找到任何关于如何/为什么这不是问题的解释/细节。有人可以解释一下吗?

答案1

Documentation/vm/highmem.txt

当物理内存的大小接近或超过虚拟内存的最大大小时,使用高内存(highmem)。 到那时,内核就不可能始终保持所有可用物理内存的映射。这意味着内核需要开始使用它想要访问的物理内存片段的临时映射。

对于 32 位系统,虚拟内存的最大大小为 2 32即 4Gb。现在这个限制很快就达到了,因此对于具有大量 RAM 的 32 位系统来说,highmem 是一个大问题。

对于64位系统,理论最大虚拟内存大小为 2 64,即 18446744073709551616 字节(16.8百万太字节)。这远远超出了今天计算机所能容纳的范围。所以 highmem 在 64 位系统上不是问题。

相关内容