1,启动BIOS,准备实模式下的中断向量表和中断服务程序。
2,加载操作系统到内存。用步骤1中准备的中断服务程序实现。
3,为执行main函数做过渡工作。
一,启动BIOS
靠硬件方法来启动BIOS,BIOS程序入口地址0xFFFF0。加电瞬间强行将CS的值置为0xFFFF,把IP的值强行置为0x0000,这样CS:IP就指向0xFFFF0这地址。
二,加载操作系统到内存分三步
(1)加载引导程序bootsect(bootsect程序主要是规划内存)。
给CPU一个0x19中断,CPU查向量表做出反应,加载第一扇区的512B的bootsect到内存0x07C00。
(这里涉及到BIOS和操作系统“两头约定,定位识别”惯例,有兴趣读者自查,俺不赘述。)
(2)加载setup代码。
(3)加载system代码。
三,开始向32位模式转变,为main函数做准备。
此阶段主要工作是,打开32位寻址空间,打开保护模式,建立保护模式下的中断响应机制,建立内存分页机制等。