我正在阅读“理解 Linux 内核”。
64 位架构的分页
正如我们在前几节中看到的,32 位微处理器通常使用两级分页。然而,两级分页不适用于采用 64 位架构的计算机。让我们用一个思想实验来解释原因:
首先假设标准页面大小为 4 KB。因为 1 KB 覆盖了 2 10 个地址的范围,4 KB 覆盖了 2 12 个 地址,所以 Offset 字段是 12 位。这留下了多达 52 位的线性地址要分布在表和目录字段之间。如果我们现在决定只使用 64 位中的 48 位进行寻址(这个限制给我们留下了一个舒适的 256 TB 地址空间!),剩余的 48-12 = 36 位将不得不在表和目录字段之间拆分。如果我们现在决定为这两个字段中的每一个保留 18 位,那么每个进程的页目录和页表都应该包含 2 18个条目,即超过 256,000 个条目。
“如果我们现在决定只使用 64 位中的 48 位进行寻址”。为什么?& 为什么只有 48 位?为什么不是其他号码?
好吧,我只是一个普通的 PC 用户和程序员。我很难相信 32 位寻址,即每个进程 4GB(更正确的是 2GB/3GB)地址空间是一个限制。如果你真的遇到了这个限制。请举个例子。
windows的这个限制是多少?
我知道虚拟内存!=物理内存和处理器地址引脚与虚拟内存无关。这是一个完全不同的问题。如何知道处理器的地址引脚数量(= 地址总线的大小)。http://ark.intel.com处理器规格不包括此规格。
回答:
有关第一个问题的合理答案,请参见Paul Betts 的答案。