打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现
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 结束之后就会调用其它代码来进行更完整的硬件检测。
第三步: 接下来系统 BIOS 将查找显卡的 BIOS ,前面说过,存放显卡 BIOS 的 ROM
芯片的起始地址通常设在 C0000H 处,系统 BIOS 在这个地方找到显卡 BIOS 之后就调用它的初始化代码,由显卡 BIOS
来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统
BIOS 接着会查找其它设备的 BIOS 程序,找到之后同样要调用这些 BIOS 内部的初始化代码来初始化相关的设备。
第四步: 查找完所有其它设备的 BIOS 之后,系统 BIOS 将显示出它自己的启动画面,其中包括有系统
BIOS 的类型、序列号和版本号等内容。
第五步: 接着系统 BIOS 将检测和显示 CPU
的类型和工作频率,然后开始测试所有的 RAM ,并同时在屏幕上显示内存测试的进度,我们可以在 CMOS
设置中自行决定使用简单耗时少或者详细耗时多的测试方式。
上一篇:Google
搜索从入门到精(四)
下一篇:全面认识计算机启动过程(2)
【本站声明】本站刊载的部分内容全部来源互联网,对于此类文章本站仅提供交流平台,不为其版权负责。如涉及侵犯您的知识产权的文章,请联系我们,我们将尽快做出更正。并向您表示感谢!同时特别感谢对本站所有支持的网友。