ami主板uefi_即将换掉传统 BIOS 的 UEFI,你懂了吗?(一)

title.jpg?1292209590

Intel即将在明年初,也就是最快下个月发表全新的Sandy Bridge处理器平台,在我们先前的整理报导提到,各大主板厂商都有意愿在新的P67主板上,以新一代的EFI固件来取代传统的BIOS,如果你还不知道EFI是什么,跟我们拿出2009年刊登在电脑王杂志的专题来复习吧。

回想一下,你上次是什么时候进入主板BIOS菜单的?对一般用户而言,主板BIOS的主要功能,就是让你可以压榨出更多硬件性能,或是去打开、关闭特定的功能才需要查看。不然就是为了让新买的CPU可以被主板辨识,或是修正一些bug的时候才会去更新它。

可曾想过,这个平淡无奇,又不是很好了解的「基本输入/输出系统」也慢慢开始有了变化。首先,笔者在486时代的后期看过BIOS大厂AMI曾推出师法Windows 3.1接口而且可以用鼠标操控的版本。后来Phoenix也力图推行当时号称所谓「真正图形接口BIOS」的CSS。而Intel也在推出Itanium 64比特处理器的时候,推出了开发代号为Tiano的EFI功能核心框架。不过,毕竟是人多好办事。在后来许多业界重量级大厂纷纷表态支持EFI,并组成UEFI论坛之后,UEFI BIOS将是未来BIOS主流的趋势在此确定。

在笔者介绍UEFI BIOS到底是啥,能做什么之前,我们先来回忆一下电脑是怎样开机的。毕竟,不管UEFI BIOS有多么强大的功能,基本上还是要先让一台电脑开机。

uefi1.jpg

▲ 你看过吗?这是AMI多年以前推出的WinBIOS设置画面。(图片为主板手册翻拍)

传统BIOS开机流程

从你按下主机机壳上的电源键,到进入操作系统的期间,保存于主板上那颗EEPROM(电气可抹除暨可程序化唯读内存)里的BIOS便会开始运行以下的工作:

1. 初始化:

当电脑打开,CPU会自行重置为初始状态,准备运作。BIOS boot block(基本输出输入系统开机区块)初始化阶段启动,因为此时系统内存中是空的,没有内容可以运行,所以厂商让CPU去寻找系统BIOS ROM中的reset vector(重置矢量):用一个固定的位置来启动所谓的BIOS boot program开机程序。

一般来说程序会在内存的FFFF0h地址,也就是在UMA(上层记忆区域)靠结尾的地方。为避免ROM大小改变造成兼容性的问题,所以一般会选择放这里。它的内容只有一个jump指令,进一步跳到真正的BIOS启动进程。当然了,各家IBV (independent BIOS vender;独立BIOS供应商)可以把程序放在不同的位置,只要透过jump来指定就可以了。

在这段期间,系统的CPU、芯片组、Super I/O和USB只有部分初始化,仅获取足够数据来应付万一BIOS开机失败,可以利用软碟(由Super I/O控管)甚至是光盘(由芯片组的IDE/SATA)等保存媒体来救援BIOS的boot block。

2. POST(Power On Self Test;开机自我检测):

然后BIOS开始施行Power-On Self Test(POST;开机自我检测),在过程中检查电脑各项组件及其设置,像是:中央处理器、主内存、键盘、鼠标等等状态。接着便寻找被内置在BIOS内部的显卡进程并运行。

它通常被放在内存C0000h的位置,作用是显卡的初始化,而大部分的显卡都会在显示器上显示其相关消息。这就是为何各位在开机的时候,首先会在显示器的画面左上角出现有关显卡消息的原因。

再下来就是让BIOS寻找其他设备的ROM(唯读内存),看看这些设备中哪些还有个别的BIOS。如果这时有找到任何其它设备的BIOS,它们也会被运行。

下一步BIOS会显示启动画面,并开始更深入的检测,包含我们平常可以在屏幕上看到的内存容量检测。如果这时候遇到任何错误,就会在画面上显示错误消息。

3. 记录电脑系统的设置值:

到这里还没有结束,再来BIOS会根据自己的「系统资源表」,来对系统进行进一步的确认,看看你的电脑究竟安装了那些系统资源或设备。有些电脑会逐步显示这些被侦测到的设备。例如BIOS支持随插即用,那它将会侦测和配置随插即用设备,并显示由BIOS侦测到的随插即用设备。

在这些检测结束后,BIOS会打出一个侦测总结表于画面上。而这个总结表在部分IBV的设置中是可以让用户开启或关闭的。当然也有些IBV为加速开机把这一步直接隐藏省略。

Tips:BIOS boot block

在快闪唯读内存内,通常会分成两个区块,一个区块存放一般的BIOS代码,即所谓的code block(代码区块);另一个区块则是存放用来开机(或急救)的代码,就是所谓的boot block(开机区块)。当电源打开时,主板会先从boot block运行,它会立即检查code block 的代码是否正确,如果正确,就会转到code block 继续运行下去。而所谓的BIOS recovery(BIOS回复)就是利用boot block回写动作来进行BIOS更新失败时的救援。

4. 提供常驻程序:

提供操作系统或应用程序调用的中断矢量,如INT 10h(VGA图形及文本输出中断)等。

5. 加载操作系统:

到这里是系统检测的部分,接下来BIOS便开始寻找开机设备,用户可以透过在BIOS的设置来决定搜索顺序,目前常见的开机设备至少包含FDD、HDD以及光驱和USB开机设备等多项。

找到开机设备后,BIOS将会搜索开机消息以进行操作系统的开机过程。如果是找到了一个灌好OS的硬盘,它将会寻找位在硬盘第0面,第0轨,第1磁区里的Master Boot Record(主要开机磁区)。如果它找到的是FDD,也会读取软碟的第1磁区。再把读取到的数据放在内存7C00h的位置,跳到那里并且运行它。自此才开始进入OS启动阶段。

uefi2.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值