之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉.
但是有时候用户程序也需要读取内核的某些数据,怎么办呢?
于是os将内核程序开辟一些可以供用用户程序访问的段.但是不允许用户程序写入数据.
1.内核不用知道用户程序的数据.内核不用调用用户程序的数据.内核不用转移到用户程序中来.
2.用户程序只能访问到内核的某些共享的段.我们称这些段为一致代码段
3.用户程序不能访问内核不共享的段.
1.在x86中的数据和代码是按段来存放的:[section]
2.............程序是通过选择子/门调用等等来在段之间来回走动的.
3.每一个选择子/门调用选择子是有分等级的:这个是在选择符的结构中:RPL(最后2位)
5:每一个代码段/数据段也是有分等级的.:这个是在gdt描述符中.
6:调用的选择符和被调用的段都分了等级.哪么这些等级在哪里使用呢?在一致代码段.也就是共享段中使用
既然是共享所以就有规则了:
对于一致代码段:也就是共享的段.
1.特权级高的程序不允许访问特权级低的数据:核心态不允许调用用户态的数据.
2.特权级低的程序可以访问到特权级高的数据.但是特权级不会改变:用户态还是用户态.
对于普通代码段.也就是非一致代码段:
0.只允许同级间访问.
1.绝对禁止不同级访问:核心态不用用户态.用户态也不使用核心态.
总结:似乎这些东西跟我们初学者预想的那样不同.核心态是老大.想用访问谁都可以.其实错了.结果恰恰相反.
这是因为防止用户篡改核心态的数据.导致核心态执行用户代码.而造成内核崩溃.
内核坏了.什么事都可能发生.
notes:要注意特权级和特权级数的问题.
特权级数 特权级
0 系统级:特权级高 特权级数低
3 用户级:特权级低 特权级数高
分享到:
相关推荐
相位一致性的理论依据是人眼感知图像信息时主要靠的是图像信号的相位而非幅度。与基于灰度的边缘特征提取方法不同,该方法是通过计算图像的相位一致性来检测图像中的边缘,该方法可以不受图像局部光线明暗变化的影响...
MyBatis表字段名与实体属性名不一致-src.zip
本PDF电子书包含上下两册,共1576页,带目录,高清非扫描版本。 作者: 毛德操 胡希明 丛书名: Linux内核源代码情景分析 出版社:浙江大学出版社 目录 第1章 预备知识 1.1 Linux内核简介. 1.2 Intel X86 CPU系列...
这段代码是一个带有领导者的二阶多智能体的领导跟随一致性仿真。以下是对代码的分析: 1. 代码初始化了系统参数,包括邻接矩阵A、拉普拉斯矩阵L、系统的领导跟随矩阵H等。 2. 代码定义了一个二阶系统的微分方程模型...
数字识别中的图像预处理阶段的全部代码(注释齐全),包括以下过程: (1) 将彩色图像转换为灰度图,其中有三种方法:最大值法、平均值法和各比例法; (2) 将灰度图转换为黑白图:利用阈值转换算法; (3) 梯度锐化; (4) ...
为执行国家标准,保证统计部门与民政部门名称相同的县级单位六位区划代码的一致性,国家统计局根据《统计用区划代码和城乡划分代码编制规则》(国统字〔2009〕91号),调整黑龙江省大兴安岭地区所辖的加格达奇区、...
本文提供一整套编写高效可靠的 Java 代码的标准、约定和指南。它们以安全可靠的软件工程原则为基础,使代码易于理解、维护和增强。而且,通过遵循这些程序设计标准,你作为一个 Java 软件开发者的生产效率会有显著...
matlab矩阵检验代码社区照片集的颜色一致性 这是用于以下论文的源代码 @inproceedings{Park2016, author = {Jaesik ...这段代码是 Jaesik Park () 在 KAIST 时写的。 编译 此代码在 Windows 8.1 下使用 M
11.3.11 保持简短的代码段 11.3.12 避免使用太大的函数 11.3.13 提供在线实例 11.4 参考手册 11.4.1 抽象化 11.4.2 语法接口 11.4.3 函数语义 11.4.4 模板参数约束 11.5 总结 11.6 练习 11.7 参考文献和...
为了统一公司软件开发的设计过程中关于代码编写时的编写规范和具体开发工作时的编程规范,保证代码的一致性,便于交流和维护,特制定此规范。本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期...
本文提供一整套编写高效可靠的 Java 代码的标准、约定和指南。它们以安全可靠的软件工程原则为基础,使代码易于理解、维护和增强。而且,通过遵循这些程序设计标准,你作为一个 Java 软件开发者的生产效率会有显著...
# Python开发代码需要注意什么 在Python开发代码时,需要注意以下几点: ...1. **保持简明扼要和清晰**: 你的代码应易于阅读和维护。这意味着避免过于复杂的逻辑,使用描述性的变量名,并始终保持代码的格式一致
在远程服务器上设法动态的把数据装进js格式的文本代码段中,供客户端调用和进一步处理;在前台通过动态添加script标签及src属性,表面看上去与ajax极为相似,但是,这和ajax并没有任何关系;为了便于使用及交流,...
为了统一公司软件开发的设计过程中关于代码编写时的编写规范和具体开发工作时的编程规范,保证代码的一致性,便于交流和维护,特制定此规范。 2 范围 本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段...
接着,代码对地图进行了旋转,以保证地图和预期设置的地图一致。然后,获取了地图的高度和宽度。 接下来,代码设置了绘图的参数,并绘制了地图中的障碍物。障碍物的坐标保存在obstacle数组中。然后,代码定义了起始...
使用图形界面,管理进货信息、销售信息和库存信息。完成功能: ① 通过菜单添加、修改各种信息; ② 可以按指定时间段查询进货清单、销售清单; ③ 按年、月、日统计销售额及利润、销售排行榜; ④ 提供盘存功能,...
这段代码是一个带有领导者的二阶多智能体的领导跟随一致性仿真。以下是对代码的分析: 1. 代码初始化了系统参数,包括邻接矩阵A、拉普拉斯矩阵L、系统的领导跟随矩阵H等。 2. 代码定义了一个二阶系统的微分方程模型...
本文提供一整套编写高效可靠的 Java 代码的标准、约定和指南。它们以安全可靠的软件工程原则为基础,使代码易于理解、维护和增强。而且,通过遵循这些程序设计标准,你作为一个 Java 软件开发者的生产效率会有显著...
9.3 高速缓存与内存的一致性 9.4 SMP结构中的中断机制 9.5 SMP结构中的进程调度 9.6 SMP系统的引导 第10章 系统引导和初始化 10.1 系统引导过程概述 10.2 系统初始化(第一阶段) 10.3 系统初始化(第二...
编写该文件可以极大地加快以一致的样式编写代码的速度。 这是通过插入完整的语句,习惯用语和注释来完成的。 这些代码片段在可扩展模板库中提供。 该插件还支持使用MATLAB代码检查器“ mlint”,并提供对Matlab函数...