跳转至

分页

ia32

usize mk_linear_addr3(usize table, usize page, [usize off])
Position Size Description 描述
0 1 present 存在
1 1 writeable 可写
2 1 user-accessible 用户可访问
3 1 write-through 直写
4 1 cache-disable 禁用缓存
5 1 accessed 已访问
6 1 dirty 脏页
7 1 page-size 页大小
8 1 global 全局
9-11 3 available 可用
12-31 20 address 地址

9-11 位可用于存储一些额外的信息,在 plos 中如下:

Position Description 描述
9 user-writable 用户可写
10 shared 共享
11 reserved 保留位

user-writable 的存在是因为用户空间中的页面会被设置为只读以便实现写时复制,复制完成后应该按照 user-writable 位的值来设置页面的写权限。

amd64

usize mk_linear_addr(usize pml4, usize pdpt, [usize pd, [usize pt, [usize off]]])
Position Size Description 描述
0 1 present 存在
1 1 writeable 可写
2 1 user-accessible 用户可访问
3 1 write-through 直写
4 1 cache-disable 禁用缓存
5 1 accessed 已访问
6 1 dirty 脏页
7 1 page-size 页大小
8 1 global 全局
9-11 3 available 可用
12-51 40 address 地址
52-62 11 available 可用
63 1 no-execute 不可执行

9-11 52-62 位可用于存储一些额外的信息,在 plos 中如下:

Position Description 描述
9 user-writable 用户可写
10 shared 共享
11 reserved 保留位
52-62 reserved 保留位

user-writable 的存在是因为用户空间中的页面会被设置为只读以便实现写时复制,复制完成后应该按照 user-writable 位的值来设置页面的写权限。

外部资料