验货员论坛
标题:
免费分享 计算机启动过程详解
[打印本页]
作者:
MS168
时间:
2012-2-7 11:05
标题:
免费分享 计算机启动过程详解
打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现
Windows
的蓝天白云时,计算机到底都干了些什么事情。
首先让我们来了解一些基本概念。第一个是大家非常熟悉的
BIOS
(基本输入输出系统),
BIOS
是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。
BIOS
包括有系统
BIOS
(即常说的主板
BIOS
)、显卡
BIOS
和其它设备(例如
IDE
控制器、
SCSI
卡或网卡等)的
BIOS
,其中系统
BIOS
是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。
BIOS
一般被存放在
ROM(
只读存储芯片
)
之中,即使在关机或掉电以后,这些代码也不会消失。
第二个基本概念是内存的地址,我们的机器中一般安装有
32MB
、
64MB
或
128MB
内存,这些内存的每一个字节都被赋予了一个地址,以便
CPU
访问内存。
32MB
的地址范围用十六进制数表示就是
0
~
1FFFFFFH
,其中
0
~
FFFFFH
的低端
1MB
内存非常特殊,因为最初的
8086
处理器能够访问的内存最大只有
1MB
,这
1MB
的低端
640KB
被称为基本内存,而
A0000H
~
BFFFFH
要保留给显示卡的显存使用,
C0000H
~
FFFFFH
则被保留给
BIOS
使用,其中系统
BIOS
一般占用了最后的
64KB
或更多一点的空间,显卡
BIOS
一般在
C0000H
~
C7FFFH
处,
IDE
控制器的
BIOS
在
C8000H
~
CBFFFH
处。
好了,下面我们就来仔细看看计算机的启动过程吧。
第一步:
当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向
CPU
发出并保持一个
RESET
(重置)信号,让
CPU
内部自动恢复到初始状态,但
CPU
在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去
RESET
信号(如果是手工按下计算机面板上的
Reset
按钮来重启机器,那么松开该按钮时芯片组就会撤去
RESET
信号),
CPU
马上就从地址
FFFF0H
处开始执行指令,从前面的介绍可知,这个地址实际上在系统
BIOS
的地址范围内,无论是
Award BIOS
还是
AMI BIOS
,放在这里的只是一条跳转指令,跳到系统
BIOS
中真正的启动代码处。
第二步:
系统
BIOS
的启动代码首先要做的事情就是进行
POST
(
Power
-
On Self Test
,加电后自检),
POST
的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。由于
POST
是最早进行的检测过程,此时显卡还没有初始化,如果系统
BIOS
在进行
POST
的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查
640K
常规内存),那么系统
BIOS
就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,
POST
过程进行得非常快,我们几乎无法感觉到它的存在,
POST
结束之后就会调用其它代码来进行更完整的硬件检测。
作者:
MS168
时间:
2012-2-7 11:06
第三步:
接下来系统
BIOS
将查找显卡的
BIOS
,前面说过,存放显卡
BIOS
的
ROM
芯片的起始地址通常设在
C0000H
处,系统
BIOS
在这个地方找到显卡
BIOS
之后就调用它的初始化代码,由显卡
BIOS
来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统
BIOS
接着会查找其它设备的
BIOS
程序,找到之后同样要调用这些
BIOS
内部的初始化代码来初始化相关的设备。
第四步:
查找完所有其它设备的
BIOS
之后,系统
BIOS
将显示出它自己的启动画面,其中包括有系统
BIOS
的类型、序列号和版本号等内容。
第五步:
接着系统
BIOS
将检测和显示
CPU
的类型和工作频率,然后开始测试所有的
RAM
,并同时在屏幕上显示内存测试的进度,我们可以在
CMOS
设置中自行决定使用简单耗时少或者详细耗时多的测试方式。
第六步:
内存测试通过之后,系统
BIOS
将开始检测系统中安装的一些标准硬件设备,包括硬盘、
CD
-
ROM
、串口、并口、软驱等设备,另外绝大多数较新版本的系统
BIOS
在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。
第七步:
标准设备检测完毕后,系统
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
,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。
第十步:
ESCD
更新完毕后,系统
BIOS
的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从
C
盘启动为例,系统
BIOS
将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行
IO.SYS
,这是
DOS
和
Windows 9x
最基本的系统文件。
Windows 9x
的
IO.SYS
首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,
Windows
将继续进行
DOS
部分和
GUI
(图形用户界面)部分的引导和初始化工作。
如果系统之中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码,这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本引导代码(
DOS
和
Windows
的基本引导代码就是分区引导记录)。
上面介绍的便是计算机在打开电源开关(或按
Reset
键)进行冷启动时所要完成的各种初始化工作,如果我们在
DOS
下按
Ctrl
+
Alt
+
Del
组合键(或从
Windows
中选择重新启动计算机)来进行热启动,那么
POST
过程将被跳过去,直接从第三步开始,另外第五步的检测
CPU
和内存测试也不会再进行。我们可以看到,无论是冷启动还是热启动,系统
BIOS
都一次又一次地重复进行着这些我们平时并不太注意的事情,然而正是这些单调的硬件检测步骤为我们能够正常使用电脑提供了基础。
作者:
VICTORLKY
时间:
2012-2-7 17:44
顶一下。。。
作者:
info
时间:
2012-5-24 10:27
关注中,等待
欢迎光临 验货员论坛 (http://bbs.wtoqc.net/)
Powered by Discuz! X3.2