计算机开机后在干啥,电脑开机时都干了些什么

如果你们的主板上有 Debug LED 等和简易 Debug 灯的话,在开机的时候可以观察一下,在显示器有东西显示之前这些 Debug 灯都会在一直跳动,如果卡在某个地方不动的话,恭喜你,有东西出问题了。

article.php?pk=60afb563b15ec073f123de5d&f=huangli

传统的 AMI BIOS 自检,图片来源:wikipedia

你看到的这个过程其实就是电脑的上电自检 Power On Self Test,简称 POST,这是计算机接通电源后系统进行的一个自我检查的例行程序,其实许多电子设备都有这个自检过程,当然我们这里只讨论 PC 的,POST 自检是设备预引导序列的一部分,自检成功的话结果会显示在屏幕上,当自检完成后 BIOS 就会进入下一个步骤,从硬盘、光盘、移动设备或网络驱动器上寻找操作系统进行启动,PC 控制权会交给操作系统。

上电自检是有 BIOS 所执行的,当然有些外围设备自带 BIOS 的会让他们自己检查,比如显卡和 SCSI 设备,这时你就会看到自检过程中多了一两个画面。

article.php?pk=60afb563b15ec073f123de5d&f=huangli

现在主板的自检界面已经相当简化

上电自检期间主板 BIOS 的主要基本职责包括:

验证 CPU 寄存器

验证 BIOS 自身的完整性

验证一些基本组件,例如 DMA、计时器、中断控制器

初始化、调整和验证系统内存

初始化 BIOS

把控制器交给其他扩展卡的 BIOS

识别与选择可用于引导的设备

而现在设备的主板 BIOS 上,POST 自检还包括:

初始化芯片组

查找、初始化和分类所有系统总线与设备

提供用于系统配置的用户界面

构建目标操作系统所需要的系统环境

当你按下电源键后,系统就会启动上电自检程序,在此期间系统的控制权在 BIOS 上。刚开机的时候电压还不稳定,主板就会通过芯片组向 CPU 发出一个 RESET 信号,此时 CPU 会初始化,同时会等待电源发出的 POWER GOOD 信号,这段时间其实只有短暂的瞬间,当电压稳定后就会撤去 RESET 信号。

随后 CPU 就会从地址 FFFF0H 处执行指令,而这个地址是在主板 BIOS 的范围内的,无论是什么哪种 BIOS 放在这里的都是一条跳转指令,就是跳转到 BIOS 的启动代码,而这个启动代码要做的第一个事情就是执行上电自检,检查 PC 的硬件设备工作状态是否正常。

上电自检的大致过程为:Power —— CPU —— ROM —— BIOS —— System Clock —— DMA —— 64KB RAM —— IRQ ——显卡等非关键设备,I/O 口、软硬盘驱动器、鼠标键盘、即插即用设备以及 CMOS 设置等都排在显卡的后面,通常显卡通过测试后屏幕就会亮起,并且在屏幕上显示各种信息。

article.php?pk=60afb563b15ec073f123de5d&f=huangli

主板上的 DeBug LED

这个过程是逐一进行的,每个设备都有一个 POST Code 开机自我检测代码,在对某个设备进行检查时就会把这个自我检测代码写入诊断端口,检测通过后就会送入另一个设备的代码,如此重复。

如果某个设备检测没有通过,它的 POST Code 就会在检测端口保留下来,而检测程序也会终止,并会发出警报,看到这里你应该已经明白 DeBug 卡上面的两个数字是怎么来的了,如果你有接蜂鸣器的话还能听到警报声,通过 DeBug 卡或者蜂鸣器的声音就能比较快速的找到问题的所在位置,并进行修理。

其实在早期的电脑上,上电自检其实是会对所有设备进行全面的测试的,包括完整的内存测试。这其实是继承了 IBM 在大型机上的设计,不过随着 PC 逐渐发展为一种个人的消费级设备,大多数产品都放弃了这种高可靠性功能,内存的奇偶校验和全面检测被放弃了,因为这一过程非常的长,而且随着内存容量的指数膨胀,这时间只会逐渐让人无法接受。

最初的 IBM PC 最少内存容量只有 16KB,而通常的产品容量是在 64 到 640KB 之间,当时使用的 8088 CPU 频率只有 4.77MHz,完成上电自检大概耗时 5 秒到一分半钟,而且无法跳过内存扫描,从 IBM XT 开始上电自检期间会显示内存计数器,而不是之前的空白屏幕。在上世纪 80 年代人们开始关注启动时间,光内存自检就要 30 到 60 秒其实是很让人不爽的,所以从哪个时候开始,兼容机的 BIOS 里面就多了个设置,运行用户通过按一个按键跳过内存自检。

而现在的电脑基本都不会进行内存自检了,现在的内存比以前可靠多,除非 BIOS 里面有着设置而且你还把它打开了。此外现在的 BIOS 在执行上电自检前会确定其执行原因,如果是冷启动的话就可能执行全部操作,但如果是休眠唤醒或者开启了快速启动的话,就会跳过标准的上电自检程序,直接从预设的系统设备列表中加载设备即可。

用过 HEDT 平台的朋友应该都有体验,就是 X99/X299 这类主板启动速度明显是要比普通 Z 字头或者 B 字头主板要慢的,原因嘛,其实就是 HEDT 平台的可扩展能力更强,上面的东西更多所以需要自检的时间更长罢了,其实如果把主板的 RAID 功能开启,或者安装 RAID 卡,或安装某些 PCI-E SSD 的话,自检速度会更慢。

此外 AMD 平台启动要比 Intel 平台慢这个估计也有许多人发现了,其实在 AMD 主板上 BIOS 启动前还有个叫 AGESA 的东西,在 AGESA 1.0.0.4 之前开机自检时间确实非常的长,这也导致了大家对 AMD 平台启动慢的印象,当然现在新版的启动时间已经大幅缩短,不比 Intel 平台慢多少。

现在的平台开机上电自检时间已经非常短,如果 BIOS 设置与上次启动是一致的话自检时间是非常快的,再加上现在基本上厂家都用开机 Logo 替换了自检界面,不把这东西关掉的话根本看不到自检报告画面,这一过程已经逐渐被大家忽略了它的存在,但它每次开机都在默默的运行。

当然如果你感觉到某次自检特别慢,如果你没加任何硬件的话,那多数是什么地方出问题了,比如莫名的超频失败 CMOS 重置,或者是什么地方松了导致开机卡住,这些时候就就会感觉到上电自检的存在。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值