保护机制概述  

  保护机制是可靠的多任务运行环境所必须的。它可用于保护各个任务免受相互之间的干扰。在软件开发的任何阶段都可以使用段级和页级保护来协助寻找和检测涉及问题和错误。当程序对错误内存空间执行一次非期望的引用,保护机制可以阻止这种操作并报告此类事件。

  保护机制可以被用于分段和分页机制。处理器寄存器的2个比特位定义了当前执行程序的特权级,称为当前特权级CPL(Current Privilege Level)。在分段和分页地址转换过程中,处理器将对CPL进行验证。

  通过设置控制寄存器CR0的PE标志(位0)可以让处理器工作在保护模式下,从而也就开启了分段保护机制。一旦进入保护模式,处理器中并不存在明确的控制标志来停止或启用保护机制。不过基于特权级的的保护机制部分可以通过把所有段选择符和段描述符的特权级都设置为0级来隐含的关闭。这种处理方式可以在段之间禁止特权级保护壁垒,但是其他段长度和段类型检查等保护机制仍然起作用。

  设置控制寄存器CR0的PG标志(位31)可以开启分页机制,同时也开启了分页保护机制。同样,处理器中也没有相关的标志用来在分页开启条件下禁止或开启页级保护机制。但是通过设置每个页目录项和页表项的读/写(R/W)标志和用户/超级用户(U/S)标志,我们可以禁止页级保护机制。设置这两个标志可以使得每个页面都可以被任意读写,因此实际上也就禁止了页级保护。

  对于分段保护机制,处理器使用段寄存器中的选择符(RPL和CPL)和段描述符中各个字段执行保护验证。对于分页机制,则主要利用页目录和页表项中的R/W和U/S标志来实现保护操作。

段级保护

  在保护模式下,80x86提供了段级和页级保护机制。这种保护机制根据特权级(4级段保护和2级页保护)提供了对某些段和页面的访问限制能力。例如,操作系统代码和数据要存放在比普通程序具有更高特权级的段中。此后处理器的保护机制将会限制应用程序只能按照受控制的和规定的方式访问操作系统的代码和数据。

  当使用保护机制时,每个内存引用都将受到检查以验证内存引用符合各种保护要求。因为检查操作是与地址变换并行的操作,所以处理器的性能并没有受到影响。保护检查可与分为以下几类:

* 段界限检查

* 段类型检查

* 特权级检查

* 可寻址范围限制

* 过程入口点限制

* 指令集限制

所有违反保护的操作都将导致产生一个异常。

转载于:https://www.cnblogs.com/coderCaoyu/p/3540088.html

4.5.1 段级保护相关推荐

  1. 任务和特权级保护(一)——《x86汇编语言:从实模式到保护模式》读书笔记27

    本文及后面的几篇文章是原书第14章的读书笔记. 1.LDT(局部描述符表) 在之前的学习中,不管是内核程序还是用户程序,我们都是把段描述符放在GDT中.但是,为了有效实施任务间的隔离,处理器建议每个任 ...

  2. 特权级——保护模式的特权级检查 DPL,RPL,CPL, 一致代码段,非一致代码段

    特权级是保护模式下一个重要的概念,CPL,RPL和DPL是其中的核心概念,查阅资料无数,总结如下. 一.CPL.RPL.DPL简单解释     CPL是当前进程的权限级别(Current Privil ...

  3. 【OS学习笔记】二十四 保护模式七:调用门与依从的代码段----特权级保护

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 上一篇文章学习了保护模式下的任务与任务隔离,以及简单介绍了保护模式下 ...

  4. 特权级转移 之 保护模式下数据段特权级保护依据

    提炼: 1 对于数据段 ,处理器进行特权级检查的时机 就是为段寄存器赋值的那一个时刻 在保护模式下 当处理器对段寄存器进行赋值的时候,处理器就会使用规则进行特权级的检查.如: mov ax, Data ...

  5. 任务和特权级保护(五)——《x86汇编语言:从实模式到保护模式》读书笔记36

    任务和特权级保护(五)--<x86汇编语言:从实模式到保护模式>读书笔记36 修改后的代码,有需要的朋友可以去下载(c14_new文件夹).下载地址是: GitHub: https://g ...

  6. 任务和特权级保护(四)——《x86汇编语言:从实模式到保护模式》读书笔记35

    任务和特权级保护(四)--<x86汇编语言:从实模式到保护模式>读书笔记35 7. 正式进入用户程序的局部空间 67 mov ebx,message_1 68 call far [fs:P ...

  7. 任务和特权级保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记34

    任务和特权级保护(三)--<x86汇编语言:从实模式到保护模式>读书笔记34 5.2.7 在GDT中创建LDT描述符 处理器要求在GDT中安装每个LDT的描述符.当要使用这些LDT时,可以 ...

  8. X86汇编语言从实模式到保护模式16:特权级和特权级保护

    目录 1. 特权级保护机制 1.1 基础段保护机制的不足 1.2 特权级划分 1.3 特权级的表示 1.3.1 当前特权级CPL 1.3.2 描述符特权级DPL 1.3.3 请求特权级RPL 1.4 ...

  9. 【OS学习笔记】二十五 保护模式七:任务和特权级保护对应的汇编源代码

    本汇编代码是以下两篇文章讲解的内容的内核代码; [OS学习笔记]二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念 [OS学习笔记]二十四 保护模式七:调用门与依从的代码段----特权级保护 ...

  10. 特权级保护和任务切换

    在简单的内核与程序加载部分,不管是内核还是用户程序,是把所有的的段描述符都放在GDT中,为了有效地在任务之间进行隔离,处理器建议每个任务都有自己的描述符表,称为局部描述符表(LDT),并把那些专属自己 ...

最新文章

  1. 天正立面lisp什么意思_合欢花的花语是什么?为什么合欢花叫苦花?
  2. 元素隐藏的三种方式对比(针对移动端项目中的按钮,先隐藏且不能被点击 visibility:hidden)
  3. FFmpeg代码导读——HEVC在RTMP中的扩展
  4. [CF/AT/Luogu]各大网站网赛 爆肝部部长工作报告文件Ⅱ
  5. html网页加入一个按钮,在html网页设计中,一个“登录”按钮怎么编写代码?
  6. Oracle中索引位图转换的优势
  7. css文本溢出 so easy~
  8. 关于UIColor这个类的一些不知道的事
  9. java模板引擎哪个好_浅谈Java模板引擎性能对比
  10. 机械--NX2007(UG)有限元分析教程2--装配体
  11. IP 点分十进制表示法
  12. c# asp.net web程序获取当前文件路径
  13. iNode客户端“未收到服务器回应,即将强行下线,请检查终端能否正常访问网络或者与管理员联系”问题与解决方式
  14. 下载安装eiigui工具
  15. Linux中nexus使用ccproxy进行代理下载包
  16. win10锁屏聚集图片不更新,右上角没有出现喜欢的按钮,怎么办?
  17. LINUX系统管理-PCS配置手册
  18. 嵌入式开发:硬件在环测试
  19. 上传图片方向不对 php,如何解决IOS中html5上传图片方向问题?
  20. 【ChatGPT】使用ChatGPT进行51单片机程序编程体验

热门文章

  1. git 常见操作合集
  2. Linux系统编程——vfork() 函数详解
  3. springboot event线程池总结
  4. Kafka、RabbitMQ、RocketMQ比较
  5. [转载]MySQL各类SQL语句的加锁机制
  6. linux 磁盘检测卡主_在Windows和Linux中找出磁盘分区使用的文件系统,就是这么简单...
  7. [渝粤教育] 浙江大学 半导体材料 参考 资料
  8. 【渝粤题库】陕西师范大学290001 计算机网络
  9. PyTorch中的梯度微分机制
  10. django模型篇:一对一、一对多、多对多,添加,批量插入和查询操作