目前的主机系统在载入硬件驱动方面的程序,主要有早期的 BIOS 与新的 UEFI 两种机制
一.BIOS 搭配 MBR/GPT 的开机流程
BIOS与MBR都是硬件本身会支持的功能
整个开机流程到操作系统之前的动作大概是这样的:
- BIOS:开机主动执行的固件,会去找第一个可开机的设备(MBR第一扇区那)
- MBR:第一个可开机设备的第一个扇区内的主要开机记录区块,内含开机管理程序;
- 开机管理程序(boot loader):一个可读取核心文件来执行的软件,用以载入(load)核心文件
- (load)核心文件:开始操作系统的功能...
1.Boot Loader(开机管理程序)
2.主要任务:
- 提供菜单:使用者可以选择不同的开机项目,这也是多重开机的重要功能!
- 载入核心文件:直接指向可开机的程序区段来开始操作系统;
- 转交其他loader:将开机管理功能转交给其他loader负责。
3.转交其他loader
开机管理程序除了可以安装在MBR之外, 还可以安装在每个分区的开机扇区(boot sector)
- 每个分区都拥有自己的开机扇区(boot sector)
- 实际可开机的核心文件是放置到各分区内的!
- loader只会认识自己的系统盘内的可开机核心文件,以及其他loader而已;
- loader可直接指向或者是间接将管理权转交给另一个管理程序。
- 就是下图中的选择M2时,将管理权限给到第二个管理程序了
多系统的开机管理程序的工作执行流程
**菜单一(M1):**可以直接载入Windows的核心文件来开机
**菜单二(M2):**则是将开机管理工作交给第二个分区的开机扇区(boot sector)。
当使用者在开机的时候选择菜单二时, 那么整个开机管理工作就会交给第二分区的开机管理程序了。
当第二个开机管理程序启动后,该开机管理程序内(上图中)仅有一个开机菜单,因此就能够使用Linux的核心文件来开机啰。
二.UEFI BIOS 搭配 GPT 开机的流程
UEFI出现的原因
- BIOS不兼容GPT,需要通过GPT提供相容模式才能够读取这个磁盘设备
- BIOS仅为16位软件,落后。
传统 BIOS 与 UEFI 的差异
比较项目 | 传统 BIOS | UEFI |
---|---|---|
使用程序语言 | 组合语言 | C 语言 |
硬件资源控制 | 使用中断 (IRQ) 管理 不可变的内存存取 不可变得输入/输出存取 | 使用驱动程序与协定 |
处理器运行环境 | 16 位 | CPU 保护模式 |
扩充方式 | 通过 IRQ 链接 | 直接载入驱动程序 |
第三方厂商支持 | 较差 | 较佳且可支持多平台 |
图形化能力 | 较差 | 较佳 |
内置简化操作系统前环境 | 不支持 | 支持 |