启动过程漫谈

分类: 新手入门   出处:iocblog整理  更新时间:2008-05-25   添加到收藏  

   利用电脑进行工作或娱乐几乎是大部分电脑用户每天必做的事情。但是,电脑在每次启动中的“所做所为”,大多数用户就未必清楚了。今天,我将向大家详细讲解从打开电源到出现windows 9x的“蓝天白云”。在这个启动过程中电脑到底干了些什么工作。
   在电脑的启动过程中有一个非常完善的硬件自检机制。对于采用award bios的电脑而言,在加电自检的短短几秒钟里,就可以瞬间完成100多个检测步骤!下面,就请大家仔细地看看电脑的启动全过程。
   第一步:在我们按下电源开关的瞬间,电源就立刻向主板和其它设备供电,此时的电压还不稳定,主板控制芯片组会向cpu发出并保持一个reset(重置)信号,让cpu初始化。当电源开始稳定供电后(从不稳定到稳定也只是短暂的瞬间),控制芯片组便撤去reset信号(如果是手动按下电脑面板上的reset按钮来重启电脑,那么松开该按钮时芯片组就会撤去reset信号),此时cpu立刻从地址ffff0h处开始执行指令。无论是award bios还是ami bios,放在这里的只是一条跳转指令,跳到系统bios中真正的启动代码处。
   第二步:系统bios的启动代码首先进行post(加电自检),post的主要任务是检测系统中的一些关键设备是否存在和能否正常工作,如内存和显卡等。由于post的检测过程发生在显卡初始化之前,因此如果在post自检的过程中发现了一些致命错误,如没有找到内存或者内存有问题(post过程只检查640k常规内存),这时是无法在屏幕上显示出来的,系统bios就通过喇叭发声来报告错误情况,声音的长短和次数代表了错误的类型。
   第三步:接下来系统bios将开始检测显卡。显卡bios中的rom芯片的起始地址通常在c0000h处,系统bios检测显卡时调用显卡bios中的初始化代码,由显卡bios来完成显卡的初始化。大多数显卡在进行初始化时通常会在屏幕上显示出一些显卡的信息,如生产厂商、图形芯片类型、显存容量等内容,这就是我们开机时看到的第一幅画面。
   第四步:检测完其它设备之后,系统bios将显示它自己的启动画面,其中包括有系统bios的类型、序列号和版本号等内容。同时在屏幕底端左下角会出现主板信息代码,包含bios的日期、主板芯片组型号及厂商代码等。
   第五步:接着,系统bios将检测cpu的类型和工作频率,并将检测结果显示在屏幕上,这就是我们开机时看到的cpu类型和主频。
   第六步:在cpu测试通过之后,系统bios将开始检测系统中安装的一些标准硬件设备。这些设备包括:硬盘、cd-rom、软驱、串行接口和并行接口等。另外,大部分新版本的系统bios在这一过程中还要自动检测和设置内存参数、硬盘参数和访问模式等。[iocblog.net 来源]
   第七步:标准设备检测完毕后,系统bios内部的支持即插即用的代码将开始检测和配置系统中已安装的即插即用设备。每找到一个设备,系统bios都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、dma通道和i/o端口等系统资源。
   第八步:到这一步为止,所有硬件都已经检测配置完毕了。系统bios会重新清屏并在屏幕上方显示出一个系统配置列表,其中概略地列出了系统中已安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。
   第九步:紧接着,系统bios将更新escd(extended system configuration data,扩展系统配置数据)。escd是系统bios用来与操作系统交换硬件配置信息的数据,这些数据被存放在cmos(一小块特殊的ram,由主板上的电池来供电)之中。通常escd数据只在系统硬件配置发生改变后才会进行更新,所以不是每次启动机器时我们都能够看到“update escd... success”这样的信息。不过,某些主板的系统bios在保存escd数据时使用了与windows 9x不相同的数据格式,于是windows 9x在它自己的启动过程中会把escd数据转换成自己的格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统bios又会把escd的数据格式改回来。如此循环,将会导致在每次启动机器时,系统bios都要更新一次escd。这就是为什么有的计算机在每次启动时都会显示“update escd... success”信息的原因。
   第十步:escd数据更新完毕后,系统bios的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从c盘启动为例,系统bios将读取并执行硬盘上的主引导记录。主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行io.sys系统文件,这是dos和windows 9x最基本的系统文件。windows 9x的io.sys文件首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云。在这幅画面之下,windows将继续进行gui(图形用户界面)部分的引导和初始化工作。如果系统安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码,这些代码将允许用户选择任意一种操作系统,然后读取并执行该操作系统的基本引导代码(dos和windows的基本引导代码就是分区引导记录)。
   上面介绍的便是计算机在打开电源开关或按reset键进行冷启动时所要完成的全部初始化工作,如果我们在dos下按ctrl+alt+del组合键或从windows中选择重新启动计算机来进行热启动,那么post过程将被跳过去,直接从第三步开始,另外第五步的检测cpu和内存测试也不会再进行。无论是冷启动还是热启动,系统bios都会进行硬件检测和引导过程,正是这个不起眼的过程保证了我们可以正常地启动和使用计算机。
  摘自《电子电脑报》
  请作者与编辑部联系
  
  
  
Tag: 启动过程



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。