BIOS简介
BIOS,基本输入输出系统,是一组固化到计算机内主板上一ROM芯片上的程序,用以保存计算机最基本的输入输出程序,并在开机后执行自检程序、初始化硬件以及加载系统引导程序等。
BIOS程序由主板上一块专门的ROM芯片来保存,又叫BIOS芯片。在微机发展早期,BIOS存放在ROM中,后来存储介质经历了EPROM、EEPROM等阶段,现在大部分电脑都使用NORFlash来作为BIOS的存储芯片,至于这些芯片的优缺点,可以查阅相关资料进行了解,这里不做阐述。主板上还有另外一块芯片,CMOS芯片,其用以配合BIOS使用。CMOS芯片主要用于保存当前系统的硬件配置以及相关的BIOS设置参数,并且有专门的后备电池进行供电,从而保持CMOS信息不会丢失
BIOS的分类
市面上比较常见的BIOS类型主要由American Mega trend,Inc(AMI)、Phoenix Technologies、Award这三家公司研发。其中,AMI BIOS以研发根基深厚、开机速度快捷著称,Award Bios则广泛适用于台式机上面,当然Award公司早已被Phoenix公司收购,而Phoenix Bios在笔记本上较为常见。
除了这三家公司外,还有一些类型的BIOS,比如美国SystemSoft公司,其生产的笔记本型BIOS也十分有名,还有台湾的Insyde公司等等。
BIOS的主要内容及相应功能
1、POST,即加电自检。自检程序用以检测微机中的各个硬件,一旦检测到错误就会中断启动过程。
2、初始化程序。针对动态内存、主板芯片组、显卡以及相关外围的寄存器做初始化设置,并检测是否能够正常工作。
3、系统设置程序。进入BIOS设置界面,我们可以对BIOS的一些默认设置做出调整,这部分功能就是由系统设置程序提供的,参数将会被保存在CMOS芯片中。
4、引导程序加载。BIOS,正如其名,只有基本的输入输出功能,所以必须要有一个手段,能够将微机控制权移交给具有完善功能的操作系统,这也是BIOS执行的最后一个过程,加载引导程序。
5、基本服务功能程序。BIOS提供了一组中断例程,提供给操作系统或者应用程序调用,包括int 10h, int 13h, int 15h等中断调用。
BIOS流程概述
1、准备加载BIOS程序。当计算机系统上电开机后,CPU会自动把代码段寄存器CS设置为0xF000,其段基地址则被设置为0xFFFFF000,段长度设置为64KB。而IP设置为0xFFF0,故此时CPU代码指向0xFFFFFFF,此即BIOS存放的位置。并且BIOS在此存放一条跳转指令用以跳转到BIOS代码中某一条指令中开始执行。自此BIOS获得微机控制权。
2、加载CMOS配置信息。BIOS程序读取CMOS芯片信息,获取微机的硬件配置,其中很重要的一点就是开机装置的搜寻顺序。
3、加电自检。BIOS对内部各个设备进行检查。完整的自检过程包括对CPU、内存、ROM、主板、显卡、软硬件子系统及键盘进行测试。如果在自检中发现问题,系统将给出提示信息或鸣笛警告。
4、初始化。初始化过程建立操作系统需要使用的各种配置表,例如中断向量表、硬盘参数表等,同时对一些外部设备进行初始化。
5、加载引导程序。在完成一系列检测和初始化操作之后,BIOS就会把与PC机兼容的64kb BIOS代码和数据复制到内存低端1M末端的64K出,然后跳转到这个地方并且让CPU进入真正的实地址模式工作,最后BIOS就会从硬盘或其他设备把操作系统引导程序加载到内存0x7c00处,并跳转到这个地方继续执行引导程序,自此BIOS基本完成了其使命,除了提供的一些基本服务例程会被操作系统调用之外,BIOS不再参与微机的控制过程。
小结
BIOS程序在微机启动过程承担着极其重要的作用,可以说在微机的早期,没有BIOS,系统就无法过渡到操作系统阶段。虽然,在不久的将来BIOS将会被UEFI替代,但是其在微机的发展历程始终都有其浓墨重彩的一笔
相关参考
- 《BIOS技术剖析》