启动
以IBM 兼容机为例
加电
- 当电源开关打开,机器供电,让主板的控制芯片向CPU发出并爆出RESET信号,让CPU回复初始状态。
- 当芯片稳定供电,撤去RESET信号,CPU从 0xffff0开始执行指令
- 大部分BIOS厂商在0xffff0 放一条跳转指令,跳转到BIOS真正的启动代码
自检 POST Power On Self Test
- 检测系统中一些关键设备是否存在和能否正常工作
- 检查 内存,先看,键盘等设备
初始化设备
系统BIOS会查找相应设备的BIOS储程序,调用BIOS内部初始化代码,来初始化相关设备
测试设备
测试即插即用设备
- 标准设备检测完之后,检测和配置系统中安装的即插即用设备
- 为该设备分配中断、DMA通道和I/O端口等资源
更新 ESCD
ESCD Extended System Configuration Data,扩展系统配置数据,系统BIOS 用来与操作系统交换硬件配置信息的一种手段
BIOS将西戎配置数据存放到CMOS 中
- 操作系统将根据这些信息配置和使用设备
- 有些设备安装后需要重启机器
- CMOS有电池供电
- CMOS放电,重新加电更新ESCD
启动操作系统
- 系统BIOS将启动盘的主引导扇区MBR 读入内存0x7c00 处,然后检查0x7dfe 地址的内存(MBR的最后一个字节的数据),如果其内容是0xaa55,说明该引导记录是完整、正确的,然后就跳转到0x7c00 处执行MBR
- MBR 负责从分区表(Partition Table)中找到第一个活动分区(Active Partition,例如C 盘),然后按照类似方式读取并执行这个活动分区的引导扇区(Partition Boot Sector),该引导扇区负责读取并执行NTLDR (NT Loader,Windows NT的加载程序),执行NTLDR时逐步完成Windows的启动