找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 534|回复: 4

64bit,分页模式特权级检查问题

[复制链接]

4

主题

7

回帖

184

积分

至尊会员

积分
184

至尊会员

发表于 2024-6-30 22:16:08 | 显示全部楼层 |阅读模式
老师,请教一个问题。
  平坦模型下,特权级检查由分页系统负责,但4级头表,页目录指针表,页目录表,页表的描述符并没有特权级属性? 那怎么检查特权级呢?

423

主题

318

回帖

3351

积分

管理员

积分
3351
发表于 2024-6-30 22:22:41 | 显示全部楼层
4级头表、页目录指针表、页目录表和页表不存在描述符。
这些表的表项有U/S位,用于特权级检查。在平坦模型下,只使用0和3特权级。U/S为是0,只允许 0/1/2特权级访问对应的下级页表项或者物理页;U/S为1,允许所有特权级访问下级表项或者物理页。

4

主题

7

回帖

184

积分

至尊会员

积分
184

至尊会员

 楼主| 发表于 2024-6-30 23:15:51 | 显示全部楼层
站长 发表于 2024-6-30 22:22
4级头表、页目录指针表、页目录表和页表不存在描述符。
这些表的表项有U/S位,用于特权级检查。在平坦模型 ...

老师,那这种判断,只需要用cpl判断就可以了么? 比如用户程序在执行,此时代码段选择子的cpl是3,这时候去访问高端线性地址,但高端线程地址分页表项中的U/S是0,那用户程序访问这个地址就会报错了吧。

点评

那当然。  发表于 2024-7-1 08:56

423

主题

318

回帖

3351

积分

管理员

积分
3351
发表于 2024-7-1 08:58:35 | 显示全部楼层
补充一下:
1,在64位模式下,代码段描述符的DPL字段依然有效。段一级的特权级检查对代码段依然是进行的;
2,在64位模式下,分页表项中的U/S位也执行特权级检查。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2025-1-9 13:20 , Processed in 0.242877 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表