实模式和保护模式的区别
实模式和保护模式的来历
-
最早期的8086 CPU只有一种工作方式 ---- 实模式。数据总线为16位,地址总线为20位。实模式下所有寄存器都是16位。
-
从80286开始就有了保护模式,从80386开始CPU数据总线和地址总线均为32位,而且寄存器都是32位。
-
现代OS操作系统在刚加电时。首先运行在实模式下,然后再切换到保护模式下运行。
物理地址,逻辑地址,有效地址,线性地址,虚拟地址介绍
物理地址就是物理内存真正的地址,具有唯1性。不管在什么模式下,不管什么虚拟地址、线性地址, 最终都要以物理地址去访问内存。
- 实模式
在实模式下,“段基址+段内偏移地址”经过段部件的处理,直接输出的就是物理地址,CPU 可以直接用此地址访问内存。
- 保护模式
保护模式下,"段基址+段内偏移地址”称为线性地址。
【注意】:此时的段基址已经不再是真正的地址了,而是 一个称为选择子的东西, 本质是个索引,类似于数组下标,通过这个索引便能在 GDT 中找到相应的段描述符,在该描述符中记录了该段的起始、大小等信息,这样便得到了段基址。
这里需要分两类情况
1.没有开启地址分页功能
此线性地址就被 作物理地址来用,可直接访问内存。
2.开启地址分页功能
若开启了分页功能,此线性地址又称为是虚拟地址。然后虚拟地址要经过 页部件转换成具体的物理地址,这样 CPU 才能将其送上地址总线去访问内存。
逻辑地址和有效地址的概念:
无论在实模式或是保护模式下,段内偏移地址又称为有效地址,也称为逻辑地址,这是程序员可见的地址。
实模式和保护模式的区别
- 实模式 16 位,实模式寻址空间是 1M。保护模式 32 位,寻址空间是 4GB。
- 实模式下的地址是“段基址+段内偏移地址”得到物理地址。保护模式下段寄存器存入了段选择子,在段描述符表中寻找段基址,再加上偏移地址得到物理地址。【分页功能是需要在保护模式下开启的,】
参考资料
-
《操作系统真象还原》
-
实模式和保护模式区别及寻址方式
-
【操作系统 3.了解实模式与保护模式的区别】