天天看点

操作系统开发--操作模式实模式保护模式

IA-32架构支持三种基本的操作模式:保护模式、实地址模式和系统管理模式。操作模式决定了哪些指令和架构特性是可访问的。

保护模式——这种模式是处理器的原生状态。保护模式下内存段都会有自己的读写属性以及特权等级,这才是保护模式的真正意义。在该模式下,可以让实地址模式的8086软件直接执行,并让该软件运行于受保护的多任务环境中。尽管运行8086软件的特性不是一个处理器模式,但是也被称为虚拟8086模式。在这里可以好好的把概念分清,以免混淆,virtual8086模式实际上是一种受保护的模式属性,可以用于任何任务。

实地址模式——这种模式实现了Intel 8086处理器的编程环境(如切换到保护或系统管理模式的能力)。处理器在启动或复位后,是处于实地址模式的。

系统管理模式(SMM)——这种模式提供了一个透明的机制来实现特定平台的功能,比如说电源管理,系统安全等。当外产SMM中断引脚本(SMI#)被激活时或在高级的编程中中断控制器(APIC)接收到SMI时,处理器会进入系统管理模式。在该模式下,处理器会进入一个独立的地址空间,同时把当前进行的程序或任务的上下文保存下来。接下来执行SMM的代码。在模式返回时,处理器会恢复原来保存的上下文。

很少有人讲解64位架构的模式,接下来讲下64位都有哪几种模式。

64位架构增加了一个IA-32e模式,IA-32e模式下有两个子模式。

兼容模式——这种模式允许大多数的16位和32位应用程序直接运行在64位操作系统下而不需要重新编译。兼容模式类似于IA-32下的保护模式。如果操作系统是64位的,那可以支持64位的运行程序,也可以向下兼容32位的应用程序。该模式下,程序只访问线性地址空间的前4G空间。

64位模式——这种模式允许64位操作系统运行可以访问64位地址空间的应用程序。该模式将通用寄存器扩展到64位,引入了新的前缀R,比如EAX变为RAX。汇编指令也都改为可以使用64位的寄存器和64位地址。

操作系统开发--操作模式实模式保护模式

如果此篇文章对您有所帮助,请多多支持哦!您的支持是我一直写下去的动力!

操作系统开发--操作模式实模式保护模式

继续阅读