操作系统学习(四)、系统启动过程
⼀、操作系统启动部分主要执⾏流程
如何设置u盘启动
当PC电源打开后,80x86结构的CPU将⾃动进⼊实时模式。并从地址0xFFFF0 (FFFF:0) 开始⾃动执⾏程序代码,这个地址通常是是ROM-BIOS中的地址。
PC机的BIOS将执⾏某些系统检测,并在物理地址0处开始初始化中断向量。此后,它将可启动设备的第⼀个扇区(磁盘引导扇区,512字节)读⼊绝对内存地址 0x7C00 处,并跳转到这个地⽅。
注:启动设备通常是软驱或硬盘。
⼆、具体执⾏过程
1. 开机后,CPU⾃动进⼊到FFFF:0 单元处执⾏,此处有⼀条跳转指令。CPU执⾏该跳转指令后,转去执⾏BIOS中的硬件系统检测和初始
化程序。
2. 初始化程序将将建⽴BIOS所⽀持的中断向量,即将BIOS提供的中断例程的⼊⼝地址登记在中断向量表中。
3. 硬件系统初始化完成后,调⽤ int 19h 进⾏操作系统引导⼯作。
如果设为从软盘启动操作系统,则int 19h 将主要完成以下⼯作。
a. 将控制0号软驱,读取软盘0道0⾯1扇区的内容到0:7C00
b. 将CS:IP 指向0:7C00
如果在0号软驱中没有软盘,或发⽣软盘I/O错误,则int 19h将主要完成以下⼯作
a. 读取硬盘C的0道0⾯1扇区的内容到0:7c00
b. 将CS:IP 指向0:7C00
注:如果从软盘启动软盘的0道0⾯1扇区中装有操作系统引导程序,int 19h 将其装在到0:7c00处后,设置CPU从0:7c00开始执⾏此处的引导程序,操作系统被激活,控制计算机。