您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 计算机启动过程(1)-BIOS+MBR部分
计算机启动过程(1)-BIOS+MBR部分2009-09-1619:41整理:jonathan本文档的CopyRight归jonathan所有,可自由转载,转载时请保持文档的完整性。/*---------------------------------------------------------------------------------------------------------------------*/1基本概念1.1BIOS(基本输入输出系统)BIOS直接与硬件打交道,为操作系统提供控制硬件设备的基本功能。BIOS分为系统BIOS(即常说的主板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的BIOS,其中系统BIOS是控制计算机的启动的主要代码。BIOS一般被存放在ROM(只读存储芯片)之中,即使在关机或掉电以后,这些代码也不会消失。1.2内存地址内存每一个字节都被赋予了一个地址,以便CPU访问。最初的8086处理器能够访问的内存最大只有1MB(0~FFFFFH):低端640KB被称为基本内存;A0000H~BFFFFH保留给显示卡显存使用;C0000H~FFFFFH则保留给BIOS使用,其中显卡BIOS一般在C0000H~C7FFFH处,IDE控制器的BIOS在C8000H~CBFFFH处,系统BIOS一般占用了最后的64KB或更多一点的空间。1.3MBR磁盘指的是硬盘、软盘、U盘、光盘等等这种类型的设备。对每个类型磁盘,都有MBR和分区来组织这个磁盘。按照标准,每个磁盘可以有最多4各主分区,1个扩展分区。扩展分区上可以分多个逻辑分区。磁盘每个分区的第一个扇区是用来存放特别的信息,比如引导加载程序,而不用来存放文件等信息(每个分区的第一个扇区无法通过文件系统来访问)。注意:MBR不属于任何分区。MBR除了存放引导加载程序,还在后64个字节中存放这个磁盘的分区表。2BIOS启动过程2.1按下电源开关,电源就开始向主板和其它设备供电;此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令;当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号);CPU马上就从地址FFFF0H处开始执行指令。从前面介绍可知,这个地址实际是系统BIOS的地址范围,无论是AwardBIOS还是AMIBIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。2.2系统BIOS的启动代码首先进行POST(Power-OnSelfTest,加电后自检)。POST的主要检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备;由于POST是最早进行的检测过程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型;在正常情况下,POST过程进行得非常快,几乎无法感觉到它的存在。POST结束之后就会调用其它代码来进行更完整的硬件检测。2.3接下来系统BIOS将查找显卡的BIOS。前面说过,存放显卡BIOS的ROM芯片的起始地址通常设在C0000H处,系统BIOS在这个地方找到显卡BIOS之后就调用它的初始化代码,由显卡BIOS来初始化显卡。此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统BIOS接着会查找其它设备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备。2.4查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BIOS的类型、序列号和版本号等内容。2.5接着系统BIOS将检测和显示CPU的类型和工作频率,测试所有的RAM,并同时在屏幕上显示内存测试的进度。可以在CMOS设置中自行决定使用简单耗时少或者详细耗时多的测试方式。2.6内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CD-ROM、串口、并口和软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。2.7标准设备检测完毕后,系统BIOS内部支持即插即用的代码将开始检测和配置系统中安装的即插即用设备。每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。2.8到这一步为止,所有硬件都已经检测配置完毕了,多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。2.9接下来系统BIOS将更新ESCD(ExtendedSystemConfigurationData,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中。通常ESCD数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时都能够看到“UpdateESCD…Success”这样的信息。不过,某些主板的系统BIOS在保存ESCD数据时使用了与Windows9x不相同的数据格式,于是Windows9x在它自己的启动过程中会把ESCD数据修改成自己的格式。但在下一次启动机器时,即使硬件配置没有发生改变,系统BIOS也会把ESCD的数据格式改回来。如此循环,将会导致在每次启动机器时,系统BIOS都要更新一遍ESCD,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。2.10ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作:即根据用户指定的启动顺序从软盘、硬盘或光驱启动MBR。系统BIOS将读取磁盘上的主引导记录MBR,并放入指定位置(0x7c00)的内存。然后BIOS把控制权交给MBR。主引导记录由两部分组成:代码和分区表。MBR代码首先检测其他代码(如查看是否有55AA有效标记),然后从分区表中找到第一个活动分区,读取并执行这个活动分区的分区引导记录。MBR扇区的数据结构:字节偏移(十六进制)字节数描述00~1BD446引导代码1BE~1CD16分区表项11CE~1DD16分区表项21DE~1ED16分区表项31EE~1FD16分区表项41FE~1FF2签名值(55AA)分区表项数据结构:偏移(十六进制)字节数描述00~001可引导标志,0x00-不可引导;0x80-可引导01~033分区起始CHS地址04~041分区类型05~073分区结束CHS地址08~0B4分区起始LBA地址(Little-endian顺序)0C~0F4分区大小扇区数(Little-endian顺序)2.11上面介绍的是计算机在打开电源开关进行冷启动时所要完成的各种初始化工作。如果从Windows中选择重新启动计算机来进行热启动,那么POST过程将被跳过去,直接从第三步开始,另外第五步的检测CPU和内存测试也不会再进行。附录:BIOS报警声音含义
本文标题:计算机启动过程(1)-BIOS+MBR部分
链接地址:https://www.777doc.com/doc-1212 .html