Intel 80386 运行模式

一般 CPU 只有一种运行模式,能够支持多个程序在各自独立的内存空间中并发执行,且有用户特权级和内核特权级的区分,让一般应用不能破坏操作系统内核和执行特权指令。80386 处理器有四种运行模式:实模式、保护模式、SMM 模式和虚拟 8086 模式。这里对涉及 ucore 的实模式、保护模式做一个简要介绍。

实模式:这是个人计算机早期的 8086 处理器采用的一种简单运行模式,当时微软的 MS-DOS 操作系统主要就是运行在 8086 的实模式下。80386 加电启动后处于实模式运行状态,在这种状态下软件可访问的物理内存空间不能超过 1MB,且无法发挥 Intel 80386 以上级别的 32 位 CPU 的 4GB 内存管理能力。实模式将整个物理内存看成分段的区域,程序代码和数据位于不同区域,操作系统和用户程序并没有区别对待,而且每一个指针都是指向实际的物理地址。这样用户程序的一个指针如果指向了操作系统区域或其他用户程序区域,并修改了内容,那么其后果就很可能是灾难性的。

对于 ucore 其实没有必要涉及,这主要是 Intel x86 的向下兼容需求导致其一直存在。其他一些 CPU,比如 ARM、MIPS 等就没有实模式,而是只有类似保护模式这样的 CPU 模式。

保护模式:保护模式的一个主要目标是确保应用程序无法对操作系统进行破坏。实际上,80386 就是通过在实模式下初始化控制寄存器(如 GDTR,LDTR,IDTR 与 TR 等管理寄存器)以及页表,然后再通过设置 CR0 寄存器使其中的保护模式使能位置位,从而进入到 80386 的保护模式。当 80386 工作在保护模式下的时候,其所有的 32 根地址线都可供寻址,物理寻址空间高达 4GB。在保护模式下,支持内存分页机制,提供了对虚拟内存的良好支持。保护模式下 80386 支持多任务,还支持优先级机制,不同的程序可以运行在不同的特权级上。特权级一共分 0 ~ 3 四个级别,操作系统运行在最高的特权级 0 上,应用程序则运行在比较低的级别上;配合良好的检查机制后,既可以在任务间实现数据的安全共享也可以很好地隔离各个任务。

这一段中很多术语没有解释,在后续的章节中会逐一展开阐述。

results matching ""

    No results matching ""