页表命名法
Pagetable nomenclature
在研究虚拟内存时,我有时会看到名词 page table、page table entry[=29 的冲突使用=],以及 页 。例如 "A page table is a table of pages..." 和 "A page table holds page table entries".
我对关系的理解(在 x86-64 的上下文中)如下:
- 虚拟内存分为块(即页)
- 一个页面 table 是一个条目数组
- 每页一个条目
- 每个条目都是一个由元数据组成的地址
- 权限位
- 在直接映射中,物理地址到帧
- 或者,另一个页面的物理地址tables
这个高级摘要和上述名词的使用是否准确?
Is this high-level summary, and use of the aforementioned nouns, accurate?
不完全(none 的条目曾经包含虚拟地址)。对于 80x86(2 级)上的 "plain 32-bit paging":
页目录是页目录条目的数组
- 页面目录条目包含页面的物理地址 table,其中一些位(本应为零)重新用于各种标志(例如权限位)
页面 table 是页面 table 条目的数组
- 页面 table 条目包含页面的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
对于 80x86(4 级)上的 "long mode paging":
PML4(页面映射级别 4)是 PML4 条目的数组
- 一个 PML4 条目包含页面的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
PDPT(页面目录指针Table)是一个 PDPT 条目数组
- PDPT 条目包含页目录的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
页目录是页目录条目的数组
- 页面目录条目包含页面的物理地址 table,其中一些位(本应为零)重新用于各种标志(例如权限位)
页面 table 是页面 table 条目的数组
- 页面 table 条目包含页面的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
这里当然有规律:
一个 <NAME>
是 <NAME>
个条目的数组
- 一个
<NAME>
条目包含 <NEXT_LOWER_LEVEL_NAME>
的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
.. 其中“<NAME>
”是(从最高到最低)以下之一:PML5
、PML4
、Page Directory Pointer Table
、Page Directory
、Page Table
.
在研究虚拟内存时,我有时会看到名词 page table、page table entry[=29 的冲突使用=],以及 页 。例如 "A page table is a table of pages..." 和 "A page table holds page table entries".
我对关系的理解(在 x86-64 的上下文中)如下:
- 虚拟内存分为块(即页)
- 一个页面 table 是一个条目数组
- 每页一个条目
- 每个条目都是一个由元数据组成的地址
- 权限位
- 在直接映射中,物理地址到帧
- 或者,另一个页面的物理地址tables
这个高级摘要和上述名词的使用是否准确?
Is this high-level summary, and use of the aforementioned nouns, accurate?
不完全(none 的条目曾经包含虚拟地址)。对于 80x86(2 级)上的 "plain 32-bit paging":
页目录是页目录条目的数组
- 页面目录条目包含页面的物理地址 table,其中一些位(本应为零)重新用于各种标志(例如权限位)
页面 table 是页面 table 条目的数组
- 页面 table 条目包含页面的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
对于 80x86(4 级)上的 "long mode paging":
PML4(页面映射级别 4)是 PML4 条目的数组
- 一个 PML4 条目包含页面的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
PDPT(页面目录指针Table)是一个 PDPT 条目数组
- PDPT 条目包含页目录的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
页目录是页目录条目的数组
- 页面目录条目包含页面的物理地址 table,其中一些位(本应为零)重新用于各种标志(例如权限位)
页面 table 是页面 table 条目的数组
- 页面 table 条目包含页面的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
这里当然有规律:
一个
<NAME>
是<NAME>
个条目的数组- 一个
<NAME>
条目包含<NEXT_LOWER_LEVEL_NAME>
的物理地址,其中一些位(本应为零)重新用于各种标志(例如权限位)
- 一个
.. 其中“<NAME>
”是(从最高到最低)以下之一:PML5
、PML4
、Page Directory Pointer Table
、Page Directory
、Page Table
.