瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 在电脑启动过程中,我们能做些什么
一道 - 2003-2-3 10:44:00

打开电源启动电脑几乎是电脑用户们每天必做的事情,但计算机在显示启动画面的时候都在做什么呢?大多数用户都未必清楚。下面就向大家介绍一下从打开电源到出现windows 9x的蓝天白云,计算机到底都干了些什么。
电脑的启动过程中有一个非常完善的硬件自检机制。对于采用awardbios的电脑来说,它在上电自检那短暂几秒钟里,就可以完成100多个检测步骤。首先我们先来了解两个基本概念:
    第一个是bi0s(基本输入输出系统),bios实际上就是被“固化”在计算机硬件中、直接与硬件打交道一组程序,计算机的启动过程 是在主板bios的控制下进行的,我们也常把它称做“系统bios”。
    第二个基本概念是内存的地址,通常计算机中安装有32mb、64mb、或128mb的内存,为了便于cpu访问,这些内存的每,一个字节都被赋予了一个地址。32mb的地址范围用十六进制表示就是0~1ffffffh,其中0~fffffh的低端内存非常特殊,因为我们使用的32位处理器能够直接访问的内存最大只有imb,因此这1mb中的低端640k被称为基本内存,而a0000h~bffffh要保留给显示卡的显存使用的 ,c0000h~fffffh则被保留给bios使用,其中系统bios一 般占用最后的64k或更多一点的空间;显示卡bios÷般在c0000h~c7fffh处,ide控制器的bios在c8000h~cbfffh处。了解了这些基本概念之后,下面我们就来仔细看看计算机的启动过程。
步骤一: 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不稳定,主扳控制芯片组会向cpu发出十个:reset(重置)信号;让cpu初 始化。当电源开始稳定供电后,芯片组便撤去reset信号,cpu马上就从地ffff0h处开始执行指令,这个地址在系统bios的地址范围内,无论是award bios还是ami bios,放在这里的只是一条跳转指令,跳到系统bios中真正的启动代码处。

    步骤二:在这一步中,系统bios的启动代码首先要做的事情就是进行post(power on self test,加电自检),post的主要任务是检测系统中的一些关键设备是否存在和能否正常工作,如内存和显卡等。由于post的检测过显示卡初始化之前,因此如果在post自检的过程中发现了一些致命错误,如没有找到内存或者内存有问题时(post过程只检查64k常规内存)是无法在屏幕上显示出来的,这时系统post可通过喇叭发声来报告错误情况,声音的长短和次数代表的类型。

    步骤三:接下来系统bios将查找显示卡的bios,存放显示卡bios的rom芯片的起始地址通常在c0000h处,系统bios找到显卡bios之后调用它的初始化代码,由显卡bios来完成显初始化。大多数显示卡在这个常会在屏幕上显示出一些显示 息,如生产厂商、图形芯片类型、显存容量等内容,这就是我们开机看到的第—个画面,不过这个画面一闪而过的,也有的显卡bios使用了延时功能,以便用户可以看清显示的信息。接着系统bios会查找其他设备的bios内部的初始化代码来初始化这些设备。

    步骤四:查找完所有其他设备的bios之后,系统将bios将显示它自己的启动画面,其中包括有系统bios的类型、序列号和版本号等内容。同时屏幕底端左下角会出现主板信息代码,包含bios的日期、主板芯片组型号、主板的识别编码及厂商代码等。

    步骤五:接着系统bios将检测cpu的类型和工作频率,并将检测结果显示在屏幕上,这就是我们开机看到的cpu类型和主频。接下来系统bios开始测试主机所有的内存容量,并同时在屏幕上显示内存测试的数值, 就是大家所熟悉的屏幕上半部分那个飞速翻滚的内存计数器。

    步骤六:内存测试通过之后,系统bios将开始测试系统中安装的一些标准硬件设备,这些设备包括:硬盘、cd-rom、软驱、串行接口和并行接口等连接的设备,另外决大多数新版本的bios在这一过程中还要自动检测和设置内存的相关参数、硬盘参数和访问模式等。

    步骤七:标准设备检测完毕后,系统bios内部的支持即插既用的代码将开始检测和配置系统中安装的即插即用设备。每找到一个设备之后,系统bios都会在屏幕上显示设备的名称和型号等信息,同时为该设备分配中断、dma通道和i/o端口等资源。

    步骤八:到这一步为止,所有硬件都已经检测配置完毕了,系统bios会重新清屏并在屏幕上方显示出一个系统配置列表,其中简略地列出系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。

    步骤九:按下来系统bios将更新escd9(extended system configuration data,扩展系统配置数据)。escd是系统bios用来于操作系统用来交换硬件配置信息的数,这些数据被存放在cm0s中。通常escd数据只在系统硬件配置发生 改变才会更新,所以不是每次启动机器时我们都能够看至“updateescd...success” 这样的信息。 不过,某些主板的系统bios在保存escd数据时使用了与windows 9x不相同的数据格式,于是windows 9x在他自己启动过程中会把escd数据转换成自己的格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统bios又会把escd的数据格式改回来,如此循环,将会导致在每次启动机器时,系统bios都要更新一遍escd,这就是为什么有的计算机在每次启动时都会显示“update escd...success”信息的原因。

    步骤十:系统bios数据更新完毕后,系统bios的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从c盘启动为例,系统bios将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行io.sys,这是dos和windows 9x最基本的系统文件。windows 9x的io.sys首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,windows将继续进行dos部分和gui(图形界面)部分的引导和初始化工作。

    上面介绍的便是计算机在打开电源开关(或按reset键)进行冷启动时所要完成的各种初始化工作,如果我们在dos下按ctrl+alt+del组合键(或从windows中选择重起计算机)来进行热启动,那么post过程将被跳过去,直接从第三步开始,另外第五步的检测cpu和内存测试也不会再进行。无论是冷启动还是热启动,系统bios都会重复上面的硬件检测和引导过程,正是这个不起眼的过程保证了我们可以正常的启动和使用计算机。



附件:
黑暗葬礼 - 2005-6-19 18:03:00
ARHUA - 2005-8-31 11:54:00
□旧日足迹□ - 2005-8-31 11:59:00
`````无奈
安德倚天剑 - 2005-8-31 18:42:00
不错,好贴
00507306 - 2005-8-31 19:32:00
关键是我们在这个过程中能做什么!?
eind - 2005-8-31 20:34:00
要是有winXP的启动过程就好了~~~
5634632165 - 2005-8-31 21:21:00
好帖啊
不过不明白我们该做什么
先顶一下
Japig - 2005-8-31 21:23:00
引用:
【一道的贴子】

...........................




文题不符
Japig - 2005-8-31 21:25:00
好诡异的楼
lsf668668 - 2005-8-31 21:43:00
别在意,我是在学习链接,没别的,请谅解。
[url][/url]http://free.ys168.com/?zibingping
Japig - 2005-8-31 21:45:00
引用:
【lsf668668的贴子】别在意,我是在学习链接,没别的,请谅解。
[url][/url]http://free.ys168.com/?zibingping
...........................

应该素这样滴~


http://free.ys168.com/?zibingping
lsf668668 - 2005-8-31 21:46:00
教教我
菜雕 - 2005-8-31 21:47:00
在电脑启动过程中,我们能做的就是=。
呵呵
Japig - 2005-8-31 21:48:00


[url][/url]


中间~
Japig - 2005-8-31 21:50:00
引用:
【菜雕的贴子】在电脑启动过程中,我们能做的就是=。
呵呵
...........................



又发现一个回贴不看贴的
lsf668668 - 2005-8-31 21:51:00
http://free.ys168.com/?zibingping
lsf668668 - 2005-8-31 21:53:00
引用:
【Japig的贴子】

[url][/url]


中间~
...........................

成了!谢谢小妹。
水漫金山 - 2005-8-31 21:56:00
大同小异,所有电脑都差不多遵循这样的过程。
Japig - 2005-8-31 21:57:00
引用:
【lsf668668的贴子】
引用:
【Japig的贴子】

[url][/url]


中间~
...........................

成了!谢谢小妹。
...........................


不见得比你小啊 西西
lsf668668 - 2005-8-31 22:09:00
引用:
【Japig的贴子】
引用:
【lsf668668的贴子】
引用:
【Japig的贴子】

[url][/url]


中间~
...........................

成了!谢谢小妹。
...........................


不见得比你小啊 西西
...........................
我的直觉你应当比我小才对。
Japig - 2005-8-31 22:10:00
引用:
【lsf668668的贴子】
引用:
【Japig的贴子】
引用:
【lsf668668的贴子】
引用:
【Japig的贴子】

[url][/url]

...........................
我的直觉你应当比我小才对。
...........................


难说
lsf668668 - 2005-8-31 22:17:00
引用:
【Japig的贴子】
引用:
【lsf668668的贴子】
引用:
【Japig的贴子】
引用:
【lsf668668的贴子】
引用:
【Japig的贴子】

[url][/url]

...........................
我的直觉你应当比我小才对。
...........................


难说
...........................
如果我感觉没错,你一定比我小得多。
lsf668668 - 2005-8-31 22:22:00
没了,小师傅。
wuye - 2005-8-31 23:25:00
自检中按下Pause Break这个键试试看.看完后在按下这个键继续.
mahuanniaobu - 2005-9-1 18:23:00
12楼的,你要笑死我啊
你把要链接的地址放在那两个标识的中间就可以了,晕
常春天 - 2005-9-1 21:37:00
原来如此啊!谢楼主指教!
爱浪漫的win - 2005-9-1 21:47:00
顶,能讲讲XP的启动过程吗??
冷雨夜阑 - 2005-9-2 2:03:00
经典
4545645646 - 2005-9-2 8:45:00
终于明白了!
12