---- 整理自狄泰软件唐佐林老师课程
1. BIOS - Base input & Output system
-
BIOS是上电后第一个运行的程序
-
BIOS首先检测硬件状态,检测通过后立即进行硬件初始化工作
-
BIOS会在内存中建立中断向量表(提供硬件访问的方法)
-
BIOS最后将控制权交由主引导程序执行
BIOS不是软件 ,而是 固件Firmware
固件是固化在硬件中的程序,在硬件出厂前已经烧写固定。
1.1 系统启动流程
==> 上电
==> 运行BIOS
==> 硬件初始化
==> 建立中断向量表
==> 加载运行主引导程序
==> 软件初始化
==> 加载运行操作系统内核
==> 系统初始化
==> …
- 问题:BIOS是如何被运行起来的?
1.2 BIOS的运行机制
-
BIOS存储于ROM中,地址映射为0xF0000~0xFFFFF(实地址)
-
BIOS的入口地址为:0xFFFF0
-
硬件电路的特殊设计使得:
- 开机后,CPU从0xFFFF0处开始执行,也即 开机后运行BIOS
1.3 BIOS的最后使命
-
按照用户设置扫描各个 存储介质(光驱、软驱、U盘,等),寻找是否有 主引导程序
-
发现主引导程序后,将主引导区中的主引导程序载入内存
-
主引导程序在内存中的入口地址为 物理地址 0x07c00
-
将控制权交由主引导程序执行(jmp 0x07c00)
思考:BIOS如何在存储介质中寻找主引导区?如何判断引导区中有没有主引导程序?
1.3.1 主引导区(MBR:Master Boot Record)
- 位置:位于存储介质的最开始处,大小为 512字节
- 特点:前512字节的 最后两个字节为 0x55aa
- 数据:0x55aa之前的数据被视为主引导程序
1.3.2 更详细的系统启动流程(x86架构)
2. 小结
- BIOS是计算机上电后第一个运行的程序
- BIOS进行必要的初始化 ,并加载运行主引导程序
- 主引导程序位于存储介质的最开始512字节处
- 主引导程序负责后续初始化,并加载操作系统内核