什么是“基本输入输出系统”?
BIOS,在出厂时已经安装在系统或服务器主板上的固件程序,在 ROM 中,使用汇编语言编写。
这里面保存操作系统开发人员常用的函数,使用 INT 指令调用,INT 指令的参数则为函数编号。需要查看 BIOS 官方文档以获取其用法。
在系统启动过程中的作用
在启动时,该程序负责硬件初始化。该程序主要工作是执行自检(POST,Power On Self Test),即进行硬件自身测试,在若干位置进行简单读写测试。
在执行自检过程中,主要会发生两类错误:
(2)非致命错误:由于软件问题导致;
在自检中,主要执行以下任务:
(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