最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

uefi

旗下网站admin30浏览0评论

uefi

uefi

-

2023年4月12日发(作者:联想oem win7)

UEFI和Bios区别

Win8系统相对于Win7系统在开机速度上有相

当大的提升,这是因为Win8系统为了提升系统

性能和对硬件的优化,加入了诸如开机引导及应

用预缓存等技术。而其中的UEFIBIOS引导,

则能使平台开机更智能,开机速度更快。

对比采用传统BIOS引导启动方式,UEFIBIOS

减少了BIOS自检的步骤,节省了大量的时间,

从而加快平台的启动。

但并不是所有WIN8都可以安装在UEFI模式

下,即使你的BIOS是UEFIBIOS,有时也会无

法安装,这是因为它与硬盘的分区结构、WIN8

是32位还是64位有关。在UEFIBIOS中,为

了兼容以前的操作系统,还提供了Legacy

BIOS模式,下面说一下这两种BIOS模式与硬

盘分区形式的关系:

LegacyBIOS模式:

支持所有32位WINDOWS8系统的安装,支持

在MBR硬盘分区结构下64位WINDOWS8的

安装,不支持硬盘的GPT的分区结构。

此时BIOS应是以下设置(以下均以G480BIOS

为例):

此时如果在安装WINDOWS8时,而硬盘的分

区结构为GPT,则在安装过程中会有如下提示:

UEFIBIOS模式:

支持GPT分区结构下的64位WINDOWS8系

统的安装,此时BIOS设置如下:

同时,需要在默认系统优化选项(有的机型无此选

项)更改如下:

上面选项凋整后就可以安装WIN8了,但有时我

们在安装时会出现没有光驱引导(或U盘)选项的

情况(有的BIOS表现为有选项但无法引导):

此时,我们需再调整SECUREBOOT选项,将此

选项DISABLE即可成功引导:

如果在UEFI模式下安装64位WINDOWS8,

而硬盘分区模式为MBR,则会出现如下提示:

此时我们需要按SHIFT+F10键进入CMD模式,

使用DISKPART磁盘工具,将MBR分表区转

为GPT模式,具体命令为:convertgpt(注意,

更改分区模式硬盘里的数据会全部丢失,请提前

备份好数据再进行此操作):

备注:

下面介绍一下与本文相关的知识:

分区表:MasterBootRecord,即硬盘

主引导记录分区表,只支持容量在2.1TB以下

的硬盘,超过2.1TB的硬盘只能管理2.1TB,最

多只支持4个主分区或三个主分区和一个扩展

分区,扩展分区下可以有多个逻辑分区。

分区表:GPT,全局唯一标识分区表

(GUIDPartitionTable),与MBR最大4个分区

表项的限制相比,GPT对分区数量没有限制,

但Windows最大仅支持128个GPT分区,GPT

可管理硬盘大小达到了18EB。只有基于UEFI

平台的主板才支持GPT分区引导启动。

分区:EFIsystempartition,该分区用

于采用了EFIBIOS的电脑系统,用来启动操作

系统。分区内存放引导管理程序、驱动程序、系

统维护工具等。如果电脑采用了EFI系统,或当

前磁盘用于在EFI平台上启动操作系统,则应建

议ESP分区。

分区:即微软保留分区,是GPT磁盘上

用于保留空间以备用的分区,例如在将磁盘转换

为动态磁盘时需要使用这些分区空间。

BOOT功能:Windows8中增加了

一个新的安全功能,SecureBoot内置于UEFI

BIOS中,用来对抗感染MBR、BIOS的恶意软件,

Windows8缺省将使用SecureBoot,在启动

过程中,任何要加载的模块必须签名(强制的),

UEFI固件会进行验证,没有签名或者无法验证

的,将不会加载。

ml

ml

传统BIOS开机流程

从你按下主机机壳上的电源键,到进入作业系统

的期间,储存於主机板上那颗EEPROM(电气

可抹除暨可程式化唯读记忆体)裡的BIOS便会

开始执行以下的工作:

1.初始化:

当电脑打开,CPU会自行重置為初始状态,準

备运作。BIOSbootblock(基本输出输入系统

开机区块)初始化阶段啟动,因為此时系统记忆

体中是空的,没有内容可以执行,所以厂商让

CPU去寻找系统BIOSROM中的reset

vector(重置向量):用一个固定的位置来啟动

所谓的BIOSbootprogram开机程式。

一般来说程式会在记忆体的FFFF0h位址,也就

是在UMA(上层记忆区域)靠结尾的地方。為

/os/Windows8/

/os/Windows8/

避免ROM大小改变造成相容性的问题,所以一

般会选择放这裡。它的内容只有一个jump指

令,进一步跳到真正的BIOS啟动程序。当然了,

各家IBV(independentBIOSvender;独

立BIOS供应商)可以把程式放在不同的位置,

只要透过jump来指定就可以了。

在这段期间,系统的CPU、晶片组、SuperI/O

和USB只有部分初始化,仅获取足够资料来应

付万一BIOS开机失败,可以利用软碟(由

SuperI/O控管)甚至是光碟(由晶片组的

IDE/SATA)等储存媒体来救援BIOS的boot

block。

(PowerOnSelfTest;开机自我检

测):

然后BIOS开始施行Power-OnSelfTest

(POST;开机自我检测),在过程中检查电脑

各项组件及其设定,像是:中央处理器、主记忆

体、键盘、滑鼠等等状态。接著便寻找被内建在

BIOS内部的显示卡程序并执行。

它通常被放在记忆体C0000h的位置,作用是

显示卡的初始化,而大部分的显示卡都会在显示

器上显示其相关讯息。这就是為何各位在开机的

时候,首先会在显示器的画面左上角出现有关显

示卡讯息的原因。

再下来就是让BIOS寻找其他装置的ROM(唯

读记忆体),看看这些设备中哪些还有个别的

BIOS。如果这时有找到任何其它装置的BIOS,

它们也会被执行。

下一步BIOS会显示啟动画面,并开始更深入的

检测,包含我们平常可以在萤幕上看到的记忆体

容量检测。如果这时候遇到任何错误,就会在画

面上显示错误讯息。

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

到这裡还没有结束,再来BIOS会根据自己的

「系统资源表」,来对系统进行进一步的确认,

看看你的电脑究竟安装了那些系统资源或设备。

有些电脑会逐步显示这些被侦测到的设备。例如

BIOS支援随插即用,那它将会侦测和配置随插

即用装置,并显示由BIOS侦测到的随插即用设

备。

在这些检测结束后,BIOS会打出一个侦测总结

表於画面上。而这个总结表在部分IBV的设定

中是可以让使用者开啟或关闭的。当然也有些

IBV為加速开机把这一步直接隐藏省略。

Tips:BIOSbootblock

在快闪唯读记忆体内,通常会分成两个区块,一

个区块存放一般的BIOS程式码,即所谓的

codeblock(程式码区块);另一个区块则是

存放用来开机(或急救)的程式码,就是所谓的

bootblock(开机区块)。当电源打开时,主

机板会先从bootblock执行,它会立即检查

codeblock的程式码是否正确,如果正确,就

会转到codeblock继续执行下去。而所谓的

BIOSrecovery(BIOS回复)就是利用boot

block回写动作来进行BIOS更新失败时的救

援。

4.提供常驻程式:

提供作业系统或应用程式呼叫的中断向量,如

INT10h(VGA图形及文字输出中断)等。

5.载入作业系统:

到这裡是系统检测的部分,接下来BIOS便开始

寻找开机装置,使用者可以透过在BIOS的设定

来决定搜寻顺序,目前常见的开机设备至少包含

FDD、HDD以及光碟机和USB开机装置等多

项。

找到开机装置后,BIOS将会搜寻开机讯息以进

行作业系统的开机过程。如果是找到了一个灌好

OS的硬碟,它将会寻找位在硬碟第0面,第0

轨,第1磁区裡的MasterBootRecord(主

要开机磁区)。如果它找到的是FDD,也会读

取软碟的第1磁区。再把读取到的资料放在记忆

体7C00h的位置,跳到那裡并且执行它。自此

才开始进入OS啟动阶段。

UEFIBIOS系统的开机流程

同样是进行电脑系统的开机,由於UEFIBIOS

是遵循UEFI论坛的规范定义下开发的,所以

UEFI的开机流程会像下图一般:

阶段:

SEC(安全性)阶段其主要的特色為「cacheas

RAM」,即处理器的快取当成记忆体。由於C

语言需要使用堆叠,在这个阶段的系统记忆体尚

未被初始化,在没有记忆体可用的情况下,便把

处理器的快取当成记忆体来使用,在主记忆体被

初始化之前来进行预先验证CPU/晶片组及主

机板。

因為这时侯没有快取,会导致处理器的效能变得

较差,所以在记忆体初始化完毕之前,SEC和

PEI阶段的程式码越简短,越能减少这个副作

用。

阶段:

和传统BIOS的初始化阶段类似,PEI(EFI前

初始化)阶段是用以唤醒CPU及记忆体初始化。

这时候只起始了一小部分的记忆体。同时,晶片

组和主机板也开始初始化。接下来的服务程式会

确定CPU晶片组被正确的初始化,在此时,EFI

驱动程式派送器将载入EFI驱动程式记忆体,进

入了起始所有记忆体的DXE阶段(驱动程式执

行环境)。

阶段:

DXE的主要功能在於沟通EFI驱动程式及硬体。

也就是说此阶段所有的记忆体、CPU(在此是指

实体两个或以上的非核心数目,也就是双CPU

插槽处理器甚至是四CPU插槽处理器)、PCI、

USB、SATA和Shell都会被初始化。

阶段:

在BDS(开机设备选择)这个阶段,使用者就

可以自开机管理者程式页面,选择要从哪个侦测

到的开机设备来啟动。

阶段:

然后进入TSL(短暂系统载入)阶段,由作业系

统接手开机。除此之外,也可以在BDS阶段选

择UEFIShell,让系统进入简单的命令列,进

行基本诊断和维护。

传统BIOS哪裡不好?

在继续探讨何谓UEFIBIOS之前,先来看看传

统BIOS有哪些问题,让Intel决心带头推出

UEFIBIOS。

1.过时的16位元模式

在x86系列CPU进入32位元的时代,為了相

容性考量,当时最新的80386CPU保留了16

位元的执行方式,即真实模式(realmode)。

在后来多次的CPU改朝换代中都保留了这种执

行方式,甚至在含有EM64T的Xeon系列CPU

中,供电到CPU啟动时仍然会切换到16位元

的真实模式下执行。

也就是说,虽然各大BIOS厂商為了配合潮流演

进,将许多新功能新元素添加到產品中,但

BIOS在本质上没有任何改变。迫使Intel在开

发更新的CPU时,都必须加进会使效能大大降

低的相容模式。

2.只有1MB定址空间

各位读者如果有注意传统BIOS开机,在POST

完毕后萤幕上打出的系统摘要表,会发现记忆体

栏位标示著「BaseMemory=640KB」。加上

前一篇提到的384KBUMA(这裡的记忆体不会

列入BaseMemory),就是所谓1MB可定址

记忆体空间。

会造成这项限制,主要还是真实模式的副作用。

16位元的CPU,其定址能力為20条定址线所

能处理的2^20位元组(Bytes),也就是1024

千位元组(KB)。换句话说,在进入OS之前

的开机阶段,即使安装了高达4GB的记忆体,

绝大部分都无法使用。

3.组合语言难维护

假设某天你买了一张高阶工作站主机板,再装上

一张SCSI或SAS的磁碟阵列卡,竟然发现安

装后你的主机板开机开不下去,然后显示「Not

enoughspacetocopyPCIoptionROM」或

「OptionROMmemoryspaceexhausted」

警告字串。然后本来你那雀跃快乐的心情消失

了,取而代之的是「归LP火」熊熊燃烧著。

当你打电话给阵列卡商,电话那头的死公务员声音说著:「你要不要问问主机板厂有没有新的

BIOS?」。好不容易找上主机板厂商客服问:

「你们有没有办法解决?」然后,你和主机板

BIOS工程师之间的攻防就此展开。

对板卡厂的BIOS工程师而言,除非刚好有下单

下很大的客户遇到类似相关问题,否则很有可能

就是不了了之。你只好趁购买七天内退掉那张阵

列卡,不然就是再找一张可以正常搭配的主机

板。

由於传统BIOS是用组合语言编写的,而软体界

早就已经是C/C++高阶语言甚至是.NET满天

飞,為了相对难找的人才(组合语言高手相对少,

要BIOS真正写得好的更是少数)来减缓新產品

上市的速度,不管是消费者或厂商都无法接受。

此时UEFIBIOS标準化和模组化的特徵,便可

加速產品推出和减少debug的时间。另外C语

言写的UEFIBIOS体积也会变大,连带使储存

BIOS的EEPROM需要扩增。

别忘了,这也是Intel的势力范围,如果EFI

BIOS推广成功,板卡厂就得多採购一颗晶片。

▲由於传统BIOS的先天侷限,有时候磁碟阵

列卡就是装不上去。

4.十年不变的程式码

上述三大问题是以开发厂商的角度来观察。其他

隐而不现的部分,则包含了功能的侷限性和对使

用者不够友善的操作介面。对照现今的视窗介面

作业系统,传统BIOS以文字介面為主且充满著

火星文,加上除了单纯的开机,作為仲介硬体初

始化和作业系统的功能外实在阳春的可怜。

在开发ItaniumCPU之际,业界大魔王Intel

实在不想再受制於这些顾虑。试想,既然这是一

个新生的CPU架构,那系统韧体和作业系统之

间的介面就顺便一起重新定义。

并且这一次,Intel為了让以后各种新的规格和

技术可以快速导入,严格定义这个传统BIOS接

班人必须具有扩展弹性,而且採取标準化的韧体

介面规范,以避免发生传统BIOS的IBV程式

码更新太被动的问题。

笔者不是开玩笑,业界之前盛传一句话,如果

AwardBIOS当时(IntelPentium处理器时

代)没有华硕,那肯定没有后来功能齐全的

BIOS程式编码。传统BIOS静态连结,缺乏远

见且叠床架屋,而几乎全基於经验和约定的见招

拆招。所以才有2000年开发出来所谓的EFI

(ExtensibleFirmwareInterface;可扩展

韧体介面)技术作為工业标準规格,定义了一个

驱动介面,用以沟通硬体/韧体和作业系统。

UEFI的版本发展

最初制定的EFI版本2000年12月的1.02版。

在2002年的12月又释出了加入EFI驱动程式

模型的1.10版。於2005年,Intel将此规格

提供给负责UEFI开发和推广的UEFI论坛。為

了反映这点,EFI也被更名為UEFI。在大部分

的文件资料中,EFI和UEFI讲的是一样的东西。

UEFI论坛在2007年1月释出2.1版的规范。

目前最新公开的版本就是2009年5月发佈的

2.3版。概括而论,凡依照UEFI论坛规范,使

用C语言写作的BIOS即為UEFIBIOS。

UEFI论坛成员类别

IBV(独立BIOS厂商)AMI、Insyde、Phoenix

IHV(独立硬体厂商)AMD、Apple、Dell、

HP、

IBM、Intel、联想

ISV(独立软体厂商)微软

UEFIBIOS哪裡好?

UEFI是藉由UEFI论坛制定的严谨规范来达成

标準化,并用模组化之C语言方式的参数堆叠传

递,藉由动态连结形式所建构出来的系统,相较

於使用组合语言的传统BIOS更易於实作,在容

错和错误更正的表现上更加优良,更好开发。

UEFI是以32或64位元CPU保护模式执行(也

称為FlatMode),突破传统16位元代码的定

址能力,可达到CPU的最大定址空间。

1.定址空间更弹性

UEFIBIOS利用载入EFIdriver的形式,来进

行硬体的辨识/控制及系统资源掌控。

传统BIOS是以真实模式中断向量的方式增加

硬体功能。它要将一段类似於驱动程式的16位

元代码,放置在记忆体0x000C0000至

0x000DFFFF之间。这段记忆体空间有限

(128KB),因此,当必须放置的optionROM

超过128KB时,传统BIOS便无能為力。

很多时候传统BIOS的工程师為了解决这类问

题,像刚刚提到的介面卡BIOS容量过大,便要

想办法利用可能的排列组合硬挤出空间来放驱

动代码。而重组过程有时不小心造成一些副作

用,例如才刚解决的bug,重组后又再发生!也

就是说,UEFIBIOS可以更有系统的分配储存

空间,避免使用强制定址。

2.什麼系统都能用

另外,传统BIOS的硬体服务程式都是以16位

元代码的形式存在,在增强模式下执行的作业系

统想存取这些服务会有困难。因此BIOS提供的

服务在现实中只能提供给MS-DOS之类的系统

用。

相对的,UEFI系统下的驱动并不是可以直接在

CPU执行的代码,而是用EBC(EFIByte

Code)这种专用於EFIdriver的虚拟机器指令,

该指令必须在UEFI的DXE阶段被解压缩后翻

译执行。

如此便有更佳的向下相容性,因為EFIdriver

是弹性的驱动程式模组架构,可不断的扩充驱动

程式及介面,不用重新编写,所以就无需考虑因

系统升级所衍生的相容性因素。

3.开发维护更容易

加上EFIdriver开发简单,所有的PC零组件

厂商都可以参与,就像现代作业系统的开发模

式,这样的模式曾使Windows系统短短几年就

变得无比强大。有了EFIdriver,也可以让显示

卡在开机阶段就载入某种程度的功能,进而可以

把传统文字介面為主的BIOS转成图形介面。

4.精简系统用途大

最后还有EFIShell,这是个精简的作业系统,

可以让使用者进行BIOS的更新、系统诊断、安

装特定软体。有了UEFIBIOS甚至可以播放CD

和DVD而不需完全载入OS,EFIdriver可以

被载入或卸载,连TCP/IP核心程式都可以使

用。基於EFI的drivermodel可使UEFI系统

接触到所有的硬体功能,在进入作业系统之前瀏

览网站不再是天方夜谭,甚至实作起来也非常简

单。总之,对使用者而言,多了一个方便的环境

以及华丽的图形介面,是最明显的好处。

传统OS重点差异

BIOS种类传统BIOSUEFIBIOS

程式语言组合语言C语言

资源控制中断向量

写死的记忆体存取

写死的输出/输入存取驱动程式/协定

处理器运行环境X8616位元CPU保护模式

扩充方式接合中断向量载入驱动程式

第三方IHV和ISV支援性较差较佳且可以支

援多平台

图形化能力较差较佳

内建简化的作业系统前环境无有

有谁在用UEFI?

UEFI支援必须藉由软硬体的相互合作来达成,

我们来看看目前市面上流通的產品中,哪些已经

採用了UEFI。

支援UEFI的硬体

1.2006年,苹果电脑推出第一台使用Intel处

理器架构的麦金塔电脑。从此开始用EFI/UEFI

framework,而非以往搭载IBMPowerPC处

理器的麦金塔电脑用的、发源於Sun

Microsystems(昇阳电脑公司)的Open

Firmware。

▲目前新版的MacOSX都已经支援UEFI。

自家的行动型、桌上型和伺服器电脑主

机板自2006年起开始全面转换為EFI/UEFI

BIOS。例如从945系列晶片组开始,Intel的

主机板就已经使用了该framework。

3.此外,2008年开始,许多64位元电脑系统

也正式支援EFI/UEFIBIOS。如IBM的x3450

伺服器、微星科技具备ClickBIOS的主机板(包

括下一篇介绍的EFINITY主机板)、HP笔记

型电脑EliteBook系列和平板电脑、HP

Compaq笔记型电脑较新的机种。

▲微软到了WindowsServer2008才开始支

援UEFI。

支援UEFI的作业系统

1.早在2000年,Linux作业系统便可以支援

EFI,当时是eliloEFIbootloader(开机载体),

演化至今是EFI版本的grub。

2.苹果电脑到了MacOSX10.4(代号Tiger)

的Intel版便可以支援EFI。

3.2002年微软给ItaniumCPU使用的Windows2000AdvancedServerLimited

Edition及DatacenterServerLimited

Edition版支援了EFIv1.10规范。后来的

WindowsServer2003forIA-64版和

WindowsXP64-bit版本也支援EFI。至於

UEFI的支援是从WindowsServer2008和

VistaSP1的64位元版本开始,包括Windows

7也只有64位元版完整支援UEFI。

▲Intel自家的D945PSN主机板。

综上所述:

BIOS开机:上电---初始化---自检---载入开机

程式---开机;

UEFI开机:上电先加载EFI微型操作系统;应

用软件,驱动程序,硬件构成;最后加载作业系

统windows;

-

uefi

发布评论

评论列表(0)

  1. 暂无评论