参考博文:[《计算机是如何启动的》](http://http://www.ruanyifeng.com/blog/2013/02/booting.html
)
- 将开机程序-BIOS(Basic input/output system 基本输入输出系统)刷入ROM芯片
- BIOS程序执行硬件自检Power-On Self-Test
- 自检完成后将开机控制权转给下一个启动程序--查询启动顺序Boot Sequence,即平时重装电脑设置的启动顺序。
- 读取设备主引导记录,查询可启动系统的硬盘位置。
- 硬盘启动
主引导记录
- 读取启动顺序第一个存储设备的第一个扇区 即前512个字节 最后两位为0x55 0xAA,否则继续查询启动顺序中下一个设备。最前面的512个字节,就叫做"主引导记录"(Master boot record,缩写为MBR)
- 主引导记录"只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。
主引导记录由三个部分组成: (1) 第1-446字节:调用操作系统的机器码。 (2) 第447-510字节:分区表(Partition table)。 (3) 第511-512字节:主引导记录签名(0x55和0xAA)。 其中,第二部分"分区表"的作用,是将硬盘分成若干个区。
硬盘启动
- 根据读取的主引导记录第一部分,启动管理器 boot loader,Grub
- 读取激活分区的第一个扇区:"卷引导记录"(Volume boot record,缩写VBR)。"卷引导记录"的主要作用是,告诉计算机,操作系统在这个分区里的位置。然后,计算机就会加载操作系统了。
- 读取扩展分区
操作系统概念第九版
计算机启动:初始化程序或引导程序开启,该程序趋向于简单,并且存储在ROM只读存储器或者EEPROM中,亦统称为固件。 它初始化系统所有部分,从Cpus寄存器到内存内容,并且知道如何加载操作系统,如何开始执行系统。 故,其必须确定操作系统内核位置并且将其加载到内存中。
内核加载完成并且执行后,开始提供给系统/用户服务。 初始时间被载入内存的程序称为系统程序。 一些服务在内核之外,通过系统程序调用称为系统进程或者系统守护进程。
综上:
开启电源-->读取BIOS程序(在ROM中)-->硬件自检-->查询启动顺序-->找到操作系统启动位置-->硬盘启动(加载内核到内存)-->执行