13.1.2 BIOS启动

     BIOS的全名是基本输入输出系统(Basic Input Output System)。它的主要任务是提供CPU所需的启动指令。刚才提到了,计算机进入复位状态后,内存被自动清零,CPU此时是无法获得指令的。计算机的设计者们当然考虑到了这一点,因此,他们预先编好了供系统启动使用的启动程序,把它们存放在ROM中,并安排它到一个固定的位置,即FFFF:0000CPU就从BIOS中获得了启动所需的指令集。该指令集除了完成硬件的启动过程以外,还要将软盘或硬盘上的有关启动的系统软件调入内存。

      让我们看一看BIOS中启动程序的主要任务:首先是上电自检(POST Power-On Self Test),然后是对系统内的硬件设备进行监测和连接,并把测试所得的数据存放到BIOS数据区,以便操作系统在启动时或启动后使用,最后,BIOS将从软盘或硬盘上读入Boot Loader,到底是从软盘还是从硬盘启动要看BIOS的设置,如果是从硬盘启动,BIOS将读入该盘的零柱面零磁道上的1扇区(MBR),这个扇区上就存放着Boot Loader,该扇区的最后一个字存放着系统标志,如果该标志的值为AA55BIOS在完成硬件监测后会把控制权交给Boot Loader

      除了启动程序以外,BIOS还提供一组中断以便对硬件设备的访问。我们知道,当键盘上的某一键被按下时,CPU就会产生一个中断并把这个键的信息读入,在操作系统没有被装入以前(LinuxBootsect.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内容进行详细解释。