一致代码段:
非一致代码段.

之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉.
但是有时候用户程序也需要读取内核的某些数据,怎么办呢?
于是os将内核程序开辟一些可以供用用户程序访问的段.但是不允许用户程序写入数据.
1.内核不用知道用户程序的数据.内核不用调用用户程序的数据.内核不用转移到用户程序中来.
2.用户程序只能访问到内核的某些共享的段.我们称这些段为一致代码段
3.用户程序不能访问内核不共享的段.

1.在x86中的数据和代码是按段来存放的:[section]
2.............程序是通过选择子/门调用等等来在段之间来回走动的.
3.每一个选择子/门调用选择子是有分等级的:这个是在选择符的结构中:RPL(最后2位)
5:每一个代码段/数据段也是有分等级的.:这个是在gdt描述符中.

6:调用的选择符和被调用的段都分了等级.哪么这些等级在哪里使用呢?在一致代码段.也就是共享段中使用
     既然是共享所以就有规则了:

对于一致代码段:也就是共享的段.
1.特权级高的程序不允许访问特权级低的数据:核心态不允许调用用户态的数据.
2.特权级低的程序可以访问到特权级高的数据.但是特权级不会改变:用户态还是用户态.

对于普通代码段.也就是非一致代码段:
0.只允许同级间访问.
1.绝对禁止不同级访问:核心态不用用户态.用户态也不使用核心态.

总结:似乎这些东西跟我们初学者预想的那样不同.核心态是老大.想用访问谁都可以.其实错了.结果恰恰相反.
这是因为防止用户篡改核心态的数据.导致核心态执行用户代码.而造成内核崩溃.
内核坏了.什么事都可能发生.

notes:要注意特权级和特权级数的问题.
            特权级数    特权级
                 0                                 系统级:特权级高 特权级数低
                 3                                 用户级:特权级低 特权级数高

一致性代码段和非一致性代码段相关推荐

  1. 一致代码段与非一致代码段

    首先,我们先来看几个问题: 一致代码段和非一致代码段是什么? 为什么要有一致代码段和非一致代码段? 系统提供怎样的机制来使用户程序访问内核数据? 程序如何在段与段之间跳转? 接下来,我们将讨论上述这些 ...

  2. 统一代码段与非一致代码段

    一致代码段与非一致代码段 上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构.在介绍这一跳转之前,这篇文章我们来介绍两个 ...

  3. CPL DPL RPL的区别 一致性代码段和非一致性代码段

    概述:在谈论保护模式编程的时候,一直会有这样的困惑:为什么除了CPL和DPL还有RPL?什么时候高特权级不能访问低特权级?什么时候低特权级不能访问高特权级?一致性代码和非一致性代码有什么区别?等等这些 ...

  4. java中static代码块与非静态代码块

    static代码块与非静态代码块的区别: static代是码块是在类加载时就加载的,而非静态代码块只有在对象实例化时才执行! 转载于:https://www.cnblogs.com/dazhuzhu/ ...

  5. 静态代码块、非静态代码块、构造函数执行顺序

    静态代码块.非静态代码块.构造函数执行顺序 /*** 类的实例化顺序,静态代码块.非静态代码块.构造函数.* @author MING*/ class Person {static String na ...

  6. shaderTextView 闪动文字,static{}(静态代码块)与{}(非静态代码块)的异同点

    目录 shaderTextView  闪动文字 static{}(静态代码块)与{}(非静态代码块)的异同点 shaderTextView  闪动文字 package com.example.zhan ...

  7. java中代码块之静态代码块和非静态代码块

    一.代码块: 语法:使用{}包裹的,可以在{}中写代码. 修饰符:static 或者不修饰. static修饰的为静态代码代码块. 格式: //静态代码块,随着类的加载児执行static{System ...

  8. java 代码块:静态代码块和非静态代码块

    main方法是程序的入口,加入没有main方法程序无法启动,但是main方法不是第一个执行的. 我认为:在这个类加载时,编译器会找到main方法,从这里开始运行,但是当你把这个类加载的时候,静态代码块 ...

  9. 静态代码块、非静态代码块、构造函数三者执行顺序

    主要探讨一下关于静态代码块,非静态代码块,构造函数的执行顺序. 如有错误,欢迎指出. 首先: 静态成员变量和静态代码块的优先级是一样的,先定义的先执行. 在创建一个对象的时候会执行非静态代码块和构造函 ...

  10. 静态代码块和非静态代码块的区别

    摘自原文 小结: 1.静态代码块是在类加载时自动执行的,非静态代码块在创建对象自动执行的代码,不创建对象不执行该类的非静态代码块. 顺序: 静态代码块-->非静态代码块-->类构造方法. ...

最新文章

  1. canvas象棋 画图
  2. leetcode 214. Shortest Palindrome | 214. 最短回文串(Java)
  3. Cpython解释器支持的进程与线程
  4. python-带返回值的装饰器
  5. 解救电商大促没灵感的设计师|攻略模板奉上
  6. 开源-一步步实现cnblogs博客采集工具-实现过滤设置对话框
  7. 【深度学习】机器视觉开源代码集合
  8. Atitit.跨语言  文件夹与文件的io操作集合  草案
  9. C语言头歌educoder实训作业答案分享 结构体
  10. SDM连接小凡的模拟路由器并配置图文并貌详细解说
  11. 如何扒微信小程序源码
  12. linux alsa 不创建声卡能否创建pcm设备,Linux ALSA声卡驱动之一:声卡的创建
  13. php--api发送钉钉消息
  14. unity 转向和角度
  15. 用计算机绘制函数图像ppt,ppt中怎么绘制三角函数图像?
  16. C语言常用语句之-循环语句
  17. Spring报错 conflicts with existing, non-compatible bean definition of same name and class
  18. Uniapp、Vue搭建浙里办微应用(单点登录、埋点)
  19. 360随身wifi产品分析
  20. Hybird应用自动化测试

热门文章

  1. Intel汇编语言程序设计学习-第六章 条件处理-下
  2. ZOJ3715 竞选班长求最小花费
  3. 【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )
  4. 【错误记录】Android 中使用 Kotlin 为 EditText 组件设置文本报错 ( Type mismatch. Required:Editable. Found:String )
  5. 【五线谱】变音记号 ( 升号 # | 降号 b | 重升号 x | 重降号 bb )
  6. 【Git】IntelliJ IDEA 提交代码到 GitCode 远程仓库 ( GitCode 创建远程仓库 | 将本地工程推送到 GitCode 远程仓库 | 验证权限 | 生成个人访问令牌 )
  7. 【Google Play】Google Play 开放式测试 ( 简介 | 发布开放式测试版本 )
  8. 【计算理论】计算复杂性 ( 非确定性图灵机的时间复杂度 | 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的关系 )
  9. idea Empty git --version output:解决
  10. 在一个千万级的数据库查寻中,如何提高查询效率?