【操作系统 3.了解实模式与保护模式的区别】
一、实模式与保护模式鸟瞰
我这人喜欢直面问题,其实本章只需要搞明白三个主要问题就行了,
- 什么是实模式和保护模式,
- 实模式与保护模式的区别是什么,
- 怎么进入保护模式。
我先来简单阐述下这三个问题
什么是实模式和保护模式
Intel 8086 是一个由 Intel 于 1978 年所设计的 16 位微处理器芯片,是 x86 架构的鼻祖。紧接着 Intel 又推出了第一款 32 位的 cpu Intel 80286(很快被淘汰,80386更经典一些),这款 cpu 由于和之前有很多不同的“保护”特性,所以称为保护模式,也是与此同时,之前的 8086 这个 16 位 cpu 才有了实模式的叫法。
所以什么是实模式和保护模式,其实就是 Intel 给自己的处理器特性命的一个名字而已,具体有哪些特性那就是细节问题了,但最起码有一点刚刚已经有所透露,那就是保护模式至少是 32 位的,而实模式是 16 位的(即使一个 32 位的 cpu 也有实模式)
实模式与保护模式的区别是什么
1.实模式 16 位,保护模式 32 位
2.实模式下的地址是段寄存器地址偏移4位+偏移地址得到物理地址。保护模式下段寄存器存入了段选择子,在段描述符表中寻找段基址,再加上偏移地址得到物理地址(开启分页下为逻辑地址)
这个我觉得是 1 的推论,就是实模式寻址空间是 1M,保护模式是 4G
这个我觉得是 2 的推论,就是段描述符表记录了段的权限,改变了实模式下可以随意访问所有内存的隐患(这也是保护这两个字的体现)
怎么进入保护模式
进入保护模式有三步:
1.打开 A20
2.加载 gdt
3.将 cr0 的 pe 位置 1(cr0是GDT表中的字段属性名)
可以看出进入保护模式的操作是很简单的,但提前要做好准备工作,最重要的就是 gdt(Global Descriptor Table 全局描述表)的准备。
保护模式与实模式的关键点要理解GDT
所以我们先说一说先什么是段描述符?
在你开机的一瞬间,CPU 的 PC 寄存器被强制初始化为 0xFFFF0。如果再说具体些,CPU 将段基址寄存器 cs 初始化为 0xF000,将偏移地址寄存器 IP 初始化为 0xFFF0,根据实模式下的最终地址计算规则,将段基址左移 4 位,加上偏移地址,得到最终的物理地址也就是抽象出来的 PC 寄存器地址为 0xFFFF0。
这种段基址左移 4 位,加上偏移地址,得到物理地址的方式,就是实模式下的地址转换方式。
然而保护模式下不一样了
在保护模式下,段基址寄存器中存的数据,被理解为==段选择子,根据这个值去我们自己在内存中写好的段描述符表中找,找到对应的段描述符,从中取出段基址。用这个段基址加上偏移地址,最终得到物理地址(逻辑地址和页表的事以后再说,不冲突)。
那自然就有两个问题,一个是段描述符表长什么样子呀?决定了我们往内存中写的数据结构是什么。另一个就是去哪找段描述符表压,这个就需要告诉 cpu 为我们提前预留好的寄存器,也就是 lgdt 指令。下面我们就分别看着两个问题
段寄存器中16位2字节段选择子的结构如下
段描述符表长什么样子
首先段描述符表是一张表,在内存中也就是个数组,是一个个的段描述符一个个紧挨着的结果。所以我们要了解段描述符长什么样就好了
对于一个段寄存器描述的一个段,该段具有段属性Attribute、段基址Base以及段限长Limit,段寄存器中能看到的16位段选择子就是为了能够查找上述三个属性
【操作系统 3.了解实模式与保护模式的区别】相关推荐
- 操作系统学习:实模式进入保护模式
本文参考书籍 1.操作系统真相还原 2.Linux内核完全剖析:基于0.12内核 3.x86汇编语言 从实模式到保护模式 ps:基于x86硬件的pc系统 保护模式相关介绍 从实模式进入保护模式其实经历 ...
- 操作系统引导--从实模式到保护模式
从开始到保护--系统开机引导 ------没有一个文档能写的通俗易懂,我希望写出来. 开机引导和实模式: 两个星期加上假期吐血整理,所述为计算机的开机引导,其中包括一系列计算机内存设置等等,由于没有老 ...
- x86从实模式到保护模式 pdf_【自制操作系统04】从实模式到保护模式
通过前三章的努力,我们成功将控制权转交给了 loader.asm 这个程序.具体说就是 bios 通过加载并跳转到 0x7c00(IMB大叔们定的) 把控制权转交给了我们操作系统的第一个汇编程序 mb ...
- 3.操作系统——CPU的实模式、保护模式和长模式
有实模式.保护模式.长模式 实模式16(实地址模式) 真实分为两个方面: 运行真实指令.不区分指令动作,只是直接执行指令的真实功能 发往内存的地址是真实.不加限制的. 总结来说就是,这个模式下直接往物 ...
- (操作系统开发)从实模式---->保护模式---->IA-32e模式( 64位模式)
实模式和保护模式都是CPU的工作模式. 实模式与保护模式介绍 在实模式下,程序可以操作任何地址空间,而且无法限制程序的执行权限.尽管这种模式给设置硬件功能带来许多方便,但却给程序执行的安全性和稳定性带 ...
- 操作系统:浅谈实模式,保护模式与长模式
学习了操作系统的实模式.保护模式与长模式,此文作为回顾. x86 CPU 在第一次加电和每次 reset 后,都会自动进入实模式,要想进入保护模式,就需要程序员写代码实现从实模式切换到保护模式. 一. ...
- 实模式和保护模式区别及寻址方式
64KB-4GB-64TB? 我记得大学的汇编课程.组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更别说为 ...
- 《x86汇编语言:从实模式到保护模式》读书笔记之后记
本来打算把整本书的读书笔记写完,可是由于有其他的计划(就叫做"B计划"吧)且优先级更高,所以我的读书笔记搁浅了.为了全力以赴执行B计划,我的博客要荒芜一段时间(我希望不要永远荒芜下 ...
- 任务切换——《x86汇编语言:从实模式到保护模式》读书笔记38
任务切换--<x86汇编语言:从实模式到保护模式>读书笔记38 本文及后面的几篇博文是原书第15章的学习笔记. 本章依然使用第13章的主引导程序. 1. 协同式多任务与抢占式多任务 有两种 ...
最新文章
- 如何理解和评价机器学习中的表达能力、训练难度和泛化性能
- WPF-数据绑定:日期时间格式
- 大数据之mongodb -- (2)java集成 MongoDB 3.2,使用Spring-data-mongodb进行集成
- 内存不能为read进不去桌面_四级报名进不去怎么办
- HTML5锤子官网,美国ESTWING 一体化锻造羊角锤 非常好用的锤子
- 朋友圈新增访客记录?大众点评辟谣”被放弃”;百度 7 款 APP 进入 App Store 前十 | 极客头条...
- 预测自适应滤波_使用自适应滤波的时间序列预测
- 银联的支付创新产业基地将落户安徽合肥 投资达80亿
- R语言学习笔记 | R语言的入门
- jxls对比_13、进阶之Jxls2与Jxls1的历史问题
- Python文本加密 或 文本文件加密
- var,let const,const 变量提升
- python 基因测序_科学网-python3 计算 基因组测序结果文件 各碱基数目(个人练习)-靳泽星的博文...
- 要取好名字的来这儿!哈哈
- 麦克风MIC 工作原理以及灵敏度调整
- 5V开关电路应用设计
- 边缘检测的评价指标:PR曲线,OIS,ODS,AP的计算与代码实现
- 学习也是一种兴趣爱好
- D神文木源:创业和做生意不同,区块链现在没有什么创业精神
- 自定义控件实现(淘宝头条/京东快报)垂直循环滚动栏目
热门文章
- android pad office,安卓平板电脑也可以使用Office应用了
- 宝塔Linux苹果cms安装,苹果CMS V10 全站伪静态教程 伪静态规则分享 宝塔Linux系统...
- 考研计算机专业学校选择,关于学校的选择问题:计算机专业_跨考网
- 论文——多指标与机器学习算法相结合的中国县级玉米产量早期预测
- php checkmobile,如何在php中檢查請求是來自移動設備還是計算機
- 近期iOS开发者问题全面答疑(3)
- FP-Growth关联分析算法在网络监控领域的应用
- 机器学习之ID3算法(小白入门级别)
- 【论文阅读】Oriented R-CNN for Object Detection
- 美国大学生足球联赛数据集football——DeepWalk算法