「BIOS」- 基本输入输出系统

什么是“基本输入输出系统”?

BIOS,在出厂时已经安装在系统或服务器主板上的固件程序,在 ROM 中,使用汇编语言编写。

这里面保存操作系统开发人员常用的函数,使用 INT 指令调用,INT 指令的参数则为函数编号。需要查看 BIOS 官方文档以获取其用法。

在系统启动过程中的作用

在启动时,该程序负责硬件初始化。该程序主要工作是执行自检(POST,Power On Self Test),即进行硬件自身测试,在若干位置进行简单读写测试。

在执行自检过程中,主要会发生两类错误:

(1)致命错误:由于硬件自身问题导致;

(2)非致命错误:由于软件问题导致;

在自检中,主要执行以下任务:

(1)验证处理器的寄存器;

(2)验证自身代码的完整;

(3)验证某些基础组件:DMA,TIMMER,INTERRUPT CONTROLLER

(4)找到系统内存,获取大小并验证;

(5)初始化自身

(6)识别,组织,选择可以用于启动的设备;

在自检结束后,蜂鸣声表明结果,可以参考手册获取其含义。

它作为处理器与读写设备的中介,消除操作系统与软件需要感知处理器和其他读写设备细节的需要。如果任何磁盘设备或读写设备发生变更,只需要更新它即可。

它保存在 EEPROM (Electrically Erasable Programmable ROM) 或闪存中,它不能存储在硬盘或者其他设备中,因为它要管理这些设备。

在自检完成后,找到启动设备,加载主引导记录(MBR),执行其中的引导程序。

不是不能,而是不好

为什么 BIOS 不能直接加载 KERNEL,而需要 BOOTLOADER?

有 BIOS 提供的中断例程

[[https://wiki.osdev.org/BIOS#BIOS_functions|BIOS – OSDev Wiki/BIOS functions

]]===== 相关链接 =====
System Initialization (x86) – OSDev Wiki

参考文献

Wikipedia/BIOS
BIOS – OSDev Wiki
6 Stages of Linux Boot Process (Startup Sequence)
Stages of Linux booting process – explanation, step by step tutorial