目前的主机系统在载入硬件驱动方面的程序,主要有早期的 BIOS 与新的 UEFI 两种机制

一.BIOS 搭配 MBR/GPT 的开机流程

BIOS与MBR都是硬件本身会支持的功能

整个开机流程到操作系统之前的动作大概是这样的:

  1. BIOS:开机主动执行的固件,会去找第一个可开机的设备(MBR第一扇区那)
  2. MBR:第一个可开机设备的第一个扇区内的主要开机记录区块,内含开机管理程序;
  3. 开机管理程序(boot loader):一个可读取核心文件来执行的软件,用以载入(load)核心文件
  4. (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 链接 直接载入驱动程序
第三方厂商支持 较差 较佳且可支持多平台
图形化能力 较差 较佳
内置简化操作系统前环境 不支持 支持
最后修改:2023 年 11 月 20 日
如果觉得我的文章对你有用,请随意赞赏