首页 > 代码库 > [转载]页级的保护措施

[转载]页级的保护措施

一、      页的三种保护措施:

★    两种权限保护: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 任意模式下被访问。

 

1supervisor模式

CPL 为0、1及2时,processor处理于supervisor  模式。

 

2user模式

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)。

 

 

1read-only类型  page

PDE/PTE 的 W/R标志被清 0,此时属于 read-only类型  page

processor 在 user模式下,只能 read

processor 在 supervisor模式下,且 CR0.WP为 0时,可以  read-write

 

2read-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保护措施的组合

1page属于supervisor/user模式?

IF (PDE.U/S = 1) AND(PTE.U/S = 1) THEN

page = user

ELSE

    page = supervisor

END

 

 

2page属于  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

[转载]页级的保护措施