You've successfully subscribed to The Daily Awesome
Great! Next, complete checkout for full access to The Daily Awesome
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Billing info update failed.

译 | 6.4 页面级保护

. 3 min read

i> From: Intel 80386 Reference Manual - 6.4 Page-Level Protection

与页面有关的保护分为两种:

  • 可寻址的区域限制
  • 类型检查

6.4.1 页表条目所有的保护参数

Page-Table Entries Hold Protection Parameters

图6-10突出显示了控制页面访问的PDE和PTE的字段。

6.4.1.1 可寻址的区域限制

Restricting Addressable Domain

通过将每个页面分配到以下两个级别之一来实现页面权限的概念:

管理员级别 (Supervisor level )(U / S = 0) - 用于操作系统和其他系统的软件及相关数据。

用户级别(U / S = 1) - 用于应用程序和数据。

当前级别(U或S)与CPL相关。 如果 CPL0, 12 ,则处理器在管理员级别执行。 如果 CPL3 ,则处理器在用户级别执行。

当处理器在管理员级别执行时,所有页面都是可寻址的,但是,当处理器在用户级别执行时,只有属于用户级别的页面是可寻址的。

6.4.1.2 类型检查

Type Checking

页面寻址级别定义了两种类型:

  • 只读 ( R/W = 0)
  • 读写 ( R/W = 1)

当处理器在管理员级别执行时,所有页面都是可读写的。 当处理器在用户级执行时,只有属于用户级别并标记为读/写访问的页面是可写的; 属于主管级别的页面对于用户级别的操作既不可读也不可写入。

6.4.2 结合两级页表保护

Combining Protection of Both Levels of Page Tables

页面目录条目的保护属性可能与其页表条目的保护属性不同。 80386通过检查目录和页表中的保护属性来计算页面的有效保护属性。 表6-5显示了可能的保护属性组合提供的有效保护。

Table 6-5. Combining Directory and Page Protection

Page Directory Entry     Page Table Entry      Combined Protection
U/S          R/W         U/S      R/W          U/S         R/W

S-0          R-0         S-0      R-0           S           x
S-0          R-0         S-0      W-1           S           x
S-0          R-0         U-1      R-0           S           x
S-0          R-0         U-1      W-1           S           x
S-0          W-1         S-0      R-0           S           x
S-0          W-1         S-0      W-1           S           x
S-0          W-1         U-1      R-0           S           x
S-0          W-1         U-1      W-1           S           x
U-1          R-0         S-0      R-0           S           x
U-1          R-0         S-0      W-1           S           x
U-1          R-0         U-1      R-0           U           R
U-1          R-0         U-1      W-1           U           R
U-1          W-1         S-0      R-0           S           x
U-1          W-1         S-0      W-1           S           x
U-1          W-1         U-1      R-0           U           R
U-1          W-1         U-1      W-1           U           W

6.4.3 重写页面保护

Overrides to Page Protection

检查某些访问,就好像它们是特权级别0引用一样,即使CPL = 3:

  • LDT, GDT, TSS, IDT 参考.
  • 循环访问(ring-crossing) CALL/INT 期间访问内部堆栈.