1、实模式:
实模式是一种比较古老的工作模式。早期的x86处理器有20根地址线,但是寻址寄存器只有16位。我们知道16位的地址可寻址2^16=64KB的地址空间,这并没有充分利用到20根地址总线。于是,实模式引入了段地址+偏移量=地址的方式,即将内存空间被分成了2^4个段,每段寻址64KB的地址空间,那么,总共寻址
(2^4)*(2^16)=2^20=1MB
的地址空间。当然,实模式需要引入段寄存器来存放段基址。x86有四个段寄存器:CS、DS、SS、ES。分别存放当前执行的代码段、数据段、堆栈段和附加数据段的段基址。
*实模式的缺点:
@没有分开系统和应用程序的存储区域,如果应用程序对系统数据进行了误操作,可能会使得系统崩溃。
@无法满足程序对大内存的需求。
2、保护模式:
保护模式运用于大于等于32位的系统,拿32位系统来说,它有32根地址线,虽然寻址寻址寄存器也是32位,但,这些系统仍然保留了段寄存器。所谓保护模式,顾名思义,它是为了保护系统数据而引入的工作模式。对于上面所说的实模式而言,应用程序可直接访问物理地址,对系统安全造成了隐患。而保护模式引入了虚拟地址的概念,应用程序只能使用逻辑地址,逻辑地址到物理地址的转换又由MMU(内存管理单元)来完成,使得应用程序无法再直接访问物理地址,从而保护了系统数据的安全。保护模式下的内存管理采用了分段或者分页(可选)的管理方式,参见下篇博文《Linux系统的内存管理》。
3、虚拟模式:
虚拟模式是为了在保护模式下运行16位的程序而虚拟的实模式,它并不是一种真正的cpu工作模式,还属于保护模式。
阅读(3177) | 评论(0) | 转发(0) |