BIOS的全名是基本输入输出系统(Basic Input Output System)。它的主要任务是提供CPU所需的启动指令。刚才提到了,计算机进入复位状态后,内存被自动清零,CPU此时是无法获得指令的。计算机的设计者们当然考虑到了这一点,因此,他们预先编好了供系统启动使用的启动程序,把它们存放在ROM中,并安排它到一个固定的位置,即FFFF:0000,CPU就从BIOS中获得了启动所需的指令集。该指令集除了完成硬件的启动过程以外,还要将软盘或硬盘上的有关启动的系统软件调入内存。
让我们看一看BIOS中启动程序的主要任务:首先是上电自检(POST Power-On Self Test),然后是对系统内的硬件设备进行监测和连接,并把测试所得的数据存放到BIOS数据区,以便操作系统在启动时或启动后使用,最后,BIOS将从软盘或硬盘上读入Boot Loader,到底是从软盘还是从硬盘启动要看BIOS的设置,如果是从硬盘启动,BIOS将读入该盘的零柱面零磁道上的1扇区(MBR),这个扇区上就存放着Boot Loader,该扇区的最后一个字存放着系统标志,如果该标志的值为AA55,BIOS在完成硬件监测后会把控制权交给Boot Loader。
除了启动程序以外,BIOS还提供一组中断以便对硬件设备的访问。我们知道,当键盘上的某一键被按下时,CPU就会产生一个中断并把这个键的信息读入,在操作系统没有被装入以前(如Linux的Bootsect.S还没有被读入)或操作系统没有专门提供另外的中断响应程序的情况下,中断的响应程序就是由BIOS提供的。
这里介绍一个具体的BIOS系统,它的上电自检(POST)程序包含14个项目,具体内容如表13.1 所示,执行过POST后,该系统将调入硬盘上的Boot Loader。
表13.1 POST程序包含的14个项目
序号 |
相应内容 |
序号 |
相应内容 |
1 |
CPU处理器内部寄存器测试 |
8 |
键盘复位和测试 |
2 |
32K RAM存储器测试 |
9 |
键盘复位和测试 |
3 |
DMA控制器测试 |
10 |
附加RAM存储器测试 |
4 |
32K RAM存储器测试 |
11 |
其他包含在系统中的BIOS测试 |
5 |
CRT视频接口测试 |
12 |
软盘设备测试 |
6 |
8259中断控制器测试 |
13 |
硬盘设备测试 |
7 |
8253定时器测试 |
14 |
打印机接口和串行接口测试 |
BIOS中的中断程序、BIOS数据区中的信息这里就不作详细介绍了,如果你想进一步了解,请查阅相关资料,在本章后面的内容中,只会对所要涉及到的部分BIOS内容进行详细解释。