扩展 (4MB) 和常规 (4KB) 分页如何共存?

在 x86 架构上,“扩展分页”允许页面帧(物理内存)为 4 MB 而不是 4 KB。

本书“Understanding the Linux Kernel, 3rd”在第 2 阶段“内存寻址”,下面 - 阶段“Linux 中的分页”,“内核页表”部分,讨论了 RAM 尺寸小于 896 MB 时的最终内核页表:

[ ] 该位可以通过使用大型网页来处理 RAM(请参阅本阶段前面的“扩展分页”区域)。

但是,在“扩展分页”部分(子章节“硬件分页”)中,它是这样写的:

扩展分页与正常分页共存。

我真的不明白如何广泛和正常的分页共存。 可以请人解释这些担忧:

  • 在哪些情况下,该位使用 4 兆字节的网页? 还是 4 KB 的网页?
  • kmalloc 过程将使用哪个网页框架维度? 对于vmalloc?
  • 如果我们假设初始代码和数据(内核是节,临时页表,还有 128 KB 用于动态信息)适合前 8 兆字节的 RAM(如书中给出的实例),假设实际代码量& 数据只有 5MB:内核会浪费 8 - 5 = 3 MEGABYTES 吗?
6
2022-06-07 14:40:04
资源 分享
答案: 0