操作系统
- Window,UNIX,Linux ,Max OS, Android, iOS
- 操作系统是直接运行硬件之上的计算机程序
- 操作系统用于管理和控制计算机的硬件与软件程序‘
- 操作系统为用户软件的开发提供必要的服务和接口
现代计算机系统架构
编译软件可以认为是用户软件,只不过是编译软件比较特殊,是用于程序开发的,最终可得到用户软件。
BIOS(Base Input & Output System)
- BIOS 是计算机上电后第一个运行的程序
- BIOS 首先检测硬件状态,检测通过后立即进行硬件初始化
- BIOS 会在内存中建立中断向量表(提供硬件访问方式)
- BIOS 最后将控制权交由主引导程序程序
注意:
BIOS 不是软件(software),而是固件(Firmware)
固件是固化于硬件中的程序,在硬件出厂前烧写固定。
系统启动流程(X86架构)
问题:
BIOS是如何运转起来的?
BIOS 的运行机制
- BIOS 存储于 ROM 中,地址应射为 0xF0000 - 0XFFFF(实地址)
- BIOS 的入口地址为:0xFFFF0(因为BIOS是程序,所以有入口地址)
- 硬件电路的特殊设计使得:开机后,CPU从 0xFFFF0 处开始执行
BIOS最后的使命
- 按照用户设置扫描各个存储介质(光驱,软驱,U盘,等)
- 发现主引导区后,将主引导区中的主引导程序载入内存
- 主引导程序在内存中的入口地址为 0x7c00
- 将控制权交由主引导程序执行(jmp 0x7c00)
问题:
BIOS 如何在存储介质中寻找主引导区?
如何判断引导区中有没有主引导程序?
主引导区(MRB:Master Boot Record)
- 位置:位于存储介质的最开始的位置处,大小为512字节
- 特点:前512字节的最后2个有效字节为 0x55aa
- 数据:0x55aa 之前的数据被视为主引导程序
更详细的系统启动流程(X86架构)
小结
- BIOS 是计算机上电后第一个运行的程序
- BIOS 进行必要的初始化, 并加载运行主引导程序
- 主引导程序位于存储介质的最开始 512字节处
- 主引导程序负责后续初始化,并加载运行操作内核