保护模式中的特权级简述

学习自狄泰软件,仅作为个人笔记。

在这里插入图片描述
在这里插入图片描述
可写属性 : 栈段的标志
可读属性:数据段的标志

在这里插入图片描述
在这里插入图片描述

问题:保护模式处理利用段界限对内存访问进行保护之外,是否还提供其他的保护机制?

在这里插入图片描述
现实产品中特权级的分配更加简单,如 Linux和Windows ,特权级只有两种,0 和 3,要么是内核,要么是应用程序,也就是我们常听到的 内核态和用户态。应用程序运行在用户态,特权级为3,内核程序运行在内核态 特权级为0

X86处理器这样设计的原因是为了安全 ,如果一个应用程序想做破坏,他可以破坏系统,直接将操作系统内核的相关段全部破坏,改写数据段,代码段等等,所以为了安全,要限制应用程序只能运行在最低特权级,不能访问高特权级的数据段和代码段。

在这里插入图片描述
在这里插入图片描述
可执行代码访问数据段时:
当前可执行代码段的特权级CPL 要小于等于 要访问的内存段的特权级DPL,否则权限不够

保护模式 代码段的特权级
在这里插入图片描述
代码段之间的跳转
当代码段A执行的时候,当前的特权级CPL就是我们所定义的A代码段的特权级DPL,当成功跳转到B代码段的时候,当前的特权级CPL就变换成B代码段的特权级DPL

保护模式 数据段的特权级

在这里插入图片描述
可执行代码访问数据段时,当前可执行代码段的特权级CPL 要小于等于 要访问的内存段的特权级DPL,否则权限不够

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们在定义每个内存段的时候,都要设定一个特权级DPL,在执行代码段的时候,还有一个执行时的特权级CPL

扫描二维码关注公众号,回复: 13276993 查看本文章

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LinuxArmbiggod/article/details/121061352
今日推荐