在浅谈-计算机加电后的启动过程(一)中,已经谈了从开机后到实模式的过程, 这次我们继续浅谈一下保护模式下发生的事情。
这次我们先看看都发生了那些事, 然后在谈为什么会有这些事情。
总览
上一篇谈到了加载器, 加载器是从实模式过渡到保护模式的。
在加载器中,首先先建立全局描述符表。接下来准备进入保护模式。
进入保护模式的三要素:
- 打开A20
- 加载GDT
- 将cr0的pe位置为1
进入保护模式后,启用分页机制,然后开始加载内核。
实模式和保护模式
起初是没有实模式这一说法的。只是这种模式有很多缺点,然后为了克服这些缺点,就出现了保护模式,为了分离这两种不同的模式,就给前一种起名为实模式。
实模式的缺点:
- 实模式下操作系统和用户程序属于同一特权级。
- 用户程序所引用的地址都是指向真实的物理地址,也就是说逻辑地址等于物理地址。
- 用户程序可以自由修改段基址,可以随意的访问所有内存
- 访问超过 64KB 的内存区域时要切换段基址。
- 一次只能运行一个程序,无法充分利用计算机资源。
- 共 20 条地址线,最大可用内存为 1MB。
综上:实模式太危险, 所以引入了保护模式。
建立全局描述符表
全局描述符表(GDT):保护模式下内存段的登记表, 表里的每一项都是一个段描述符。想要访问哪一段内存,必须