0 前言

装过n多系统,制作过n多个启动优盘,所有教程上都讲重装系统前的第一步就是设置BIOS/UEFI为“U盘启动”,但一直不知道何为BIOS/UEFI。最近在学习南大蒋炎岩老师/教授的《操作系统:设计与实践》,终于弄明白了BIOS/UEFI是啥、BIOS/UEFI的工作原理以及操作系统镜像的加载过程这几问题。特将学习笔记整理如下。

1 Firm固件/BIOS

首先,BIOS和UEFI是两种常用的Firm固件,其中BIOS较为古老,UEFI较为新。
思考一个问题:计算机是如何将操作系统镜像源码加载到硬件中完成初始化并运行操作系统源码的?
Firm就是计算机硬件和软件之间的“桥梁”,是硬件生产厂商在计算机中写入的固件。它负责将计算机硬件–准确说就是磁盘/ROM/U盘中的操作系统初始化引导程序加载到内存中,这时候就由操作系统源码获得对这个计算机硬件的控制权,从而完成操作系统软件注入计算机硬件的过程。
所以,BIOS和UEFI本质上都是主板/主板上外插设备–磁盘/ROM/U盘的软件抽象,它负责将用户数据加载到内存中,从装系统的角度讲,这里的用户数据就是系统镜像源码

2 Fireware固件/BIOS的工作原理与操作系统镜像加载过程

2.1 Firm固件加载用户数据整体流程

BIOS 固件 bios 固件设置_BIOS 固件


另一个图示:

BIOS 固件 bios 固件设置_操作系统镜像_02

2.2 操作系统镜像的组成

BIOS 固件 bios 固件设置_操作系统镜像_03

2.3 操作系统镜像加载过程

操作系统镜像加载过程大体包括以下四个步骤,中间细节很复杂,不展开讲解了。

(1)启动加载器(Boot Loader)

BIOS 固件 bios 固件设置_操作系统镜像_04

(2)ELF文件开始执行

BIOS 固件 bios 固件设置_BIOS_05

(3)C代码开始执行

BIOS 固件 bios 固件设置_操作系统镜像_06


(4)操作系统:开始执行

BIOS 固件 bios 固件设置_BIOS 固件_07