本文是
操作系统系列
的第一篇文章,以BIOS-MBR启动过程为例,介绍计算机系统是如何启动的。原文链接,更多内容见公号机器学习与系统
,欢迎与我互动~
概览
计算机系统的启动过程是非常复杂的,也诞生了很多流派,比如BIOS-MBR启动方式、UEFI-GPT启动方式等。不管是哪个流派,广义上的启动过程是类似的,以BIOS-MBR为例,可以简化为如下步骤:
- 计算机通电,硬件初始化
- 执行BIOS,进行硬件检测,确定启动设备
- 主引导记录(MBR),包含引导操作系统的相关信息
- 启动加载器,开始于MBR中的加载程序,结束语操作系统运行
- 执行操作系统内核,计算机完成启动
计算机通电
计算机通电后,CPU中的执行地址会初始化为BIOS的地址,然后开始加载执行BIOS程序。这里面的BIOS程序是笔记本厂商出厂时就写入到ROM中的。至于ROM中BIOS的执行地址,则根据处理器手册约定值进行设定。
不同的CPU在执行BIOS前的操作不同,以x86指令集架构CPU为例,指令地址由CS、IP两个寄存器构成,CS:IP初始化