6.2. Boot

6.2.1. BIOS

BIOS (Basic Input/Output System) 是固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,提供了一种载入操作系统的方式。

BIOS的主要功能有开机自检、系统初始化、提供运行时服务、系统设置、引导操作系统等。

在电源启动后做自检,如果硬件有问题,则发出蜂鸣,没问题则根据设定好的启动顺序把控制权转交给下一阶段的启动程序。

转交给下阶段启动程序后,计算机会读取设备的第一个扇区,如果扇区的最后两个字节是 0x55AA 则表明设备可以用于启动,否则将控制权转移给下一个设备。

扇区共512字节,其中第1-446字节记录调用操作系统的机器码,第447-510字节记录分区表(Partition table),将硬盘分为多个分区,第511-512字节为主引导记录签名(0x55AA)。

6.2.2. UEFI

UEFI,全称是统一的可扩展固件接口 (Unified Extensible Firmware Interface),是计算机操作系统和平台固件之间的接口规范,提供了灵活的配置。

在UEFI之后,BIOS也被称作Legacy。和之前的BIOS相比,UEFI最大的区别在于编码几乎都是用C语言完成,只使用少量的汇编。运行使用32位的保护模式,不再使用16位的实模式。

BIOS标准将bootlloader存放在主引导记录(MBR)中,容量有限,而UEFI中引入了新的系统分区来存储bootloader以及驱动等数据。

另外,UEFI通过固件签名验证提供了安全的启动加载,拒绝不合法的UEFI执行程序和驱动程序。

6.2.3. GRUB

GNU GRUB(GRand Unified Bootloader)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

6.2.4. 参考链接