首页 > 代码库 > [转载]页级的保护措施
[转载]页级的保护措施
一、 页的三种保护措施:
★ 两种权限保护:supervisor(0、1及2级)和user(3级)
★ 两种访问限制:read-only 及 read/write
★ PAE 下的 No Exceute 属性保护
二、 supervisor/user保护措施
★ PDE/PTE 的 U/S域,0时:supervisor访问权限。 1时:user访问权限
★ PDE/PTE 的U/S为0时:所参考的 page 只能 CPU 在 supervisor 模式下被访问。
★ PDE/PTE 的U/S为1时:所参考的 page 可以在 CPU 任意模式下被访问。
1、supervisor模式
★ CPL 为0、1及2时,processor处理于supervisor 模式。
2、user模式
★ CPL 为 3 时,processor 处理于 user模式。
三、 read-only/read-write保护措施
★ PDE/PTE 的 W/R域,0时:read-only类型。 1时:read-write类型。
★ CR0.WP 为 0时,processor在 supervisor模式下能 read/write 任意 page(包括user及 supervisor模式的 read-only类型的 page)
★ CR0.WP 为 1时,限制 processor在 supervisor模式下对所有read-only类型的 page进行 write操作(user及 supervisor模式的 page的 read/write类型的 page 允许 write)。
1、read-only类型 page
★ PDE/PTE 的 W/R标志被清 0,此时属于 read-only类型 page
★ processor 在 user模式下,只能 read
★ processor 在 supervisor模式下,且 CR0.WP为 0时,可以 read-write
2、read-write类型 page
★ PDE/PTE 的 W/R标志被置 1,此时属于 read-write类型 page
★ processor 在 user模式下,可以对 user模式的 page进行 read-write
★ processor 在 supervisor模式下,可以对supervisor/user模式的 page进行 read-write
四、PDE与 PTE保护措施的组合
1、page属于supervisor/user模式?
IF (PDE.U/S = 1) AND(PTE.U/S = 1) THEN
page = user
ELSE
page = supervisor
END
2、page属于 read-only/read-write类型?
★一般情况下:
IF (PDE.W/R = 1) AND(PTE.W/R = 1) THEN
page = read-write
ELSE
page = read-only
END
★ processor 处理于 supervisor且 CR0.WP = 0情况下:
page = read-write
★ processor 处理于 supervisor且 CR0.WP = 1情况下:
IF (PDE.W/R = 1) AND(PTE.W/R = 1) THEN
page = read-write
ELSE
page = read-only
END
五、 PAE下的 No Exceute (不可执行)保护措施
★ PDE/PTE 的 NX标志: 0时:可执行, 1时:不可执行。
★ PDE/PTE 的 NX保护措施组合:
IF (PDE.NX = 1) OR(PTE.NX = 1) THEN
page = No Exceute
ELSE
page = Exceute
END
[转载]页级的保护措施