UEFI与BIOS

作者:知乎用户
链接:https://www.zhihu.com/question/27382811/answer/81696993
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1. BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,这些代码包括:
加电自检程序,用于开机时对硬件的检测。
‰‰系统初始化代码,包括硬件设备的初始化、创建BIOS中断向量等。
‰‰基本的外围I/O处理的子程序代码。
‰‰CMOS设置程序。

我个人比较倾向于“传统BIOS”叫Legacy, “新式BIOS”叫UEFI。
Legacy已经逐渐成为历史,UEFI目前开始全面取代Legacy。
UEFI全称统一可扩展固件接口,是UEFI 论坛发布的一种操作系统和平台固件之间的标准。它之所以能迅速取代Legacy,源于硬件平台的发展以及UEFI相对于Legacy的巨大优势。
UEFI可编程性好,可扩展性好,性能高,安全性高。
随着64位CPU取代32位CPU,UEFI也完成了对Legacy的取代。
传统BIOS缺点:
随着CPU及其他硬件设备的革新,BIOS逐渐成为计算机系统发展的瓶颈,主要体现在如下几个方面:
1)开发效率低:大部分BIOS代码使用汇编开发,开发效率不言而喻。汇编开发的另一个缺点是使得代码与设备的耦合程度太高,代码受硬件变化的影响大。
2)性能差:BIOS基本输入/输出服务需要通过中断来完成,开销大,并且BIOS没有
提供异步工作模式,大量的时间消耗在等待上。
3)功能扩展性差,升级缓慢:BIOS代码采用静态链接,增加硬件功能时,必须将16
位代码放置在0x0C0000~0x0DFFFF区间,初始化时将其设置为约定的中断处理程序。而且BIOS没有提供动态加载设备驱动的方案。
4)安全性:BIOS运行过程中对可执行代码没有安全方面的考虑。
5)不支持从硬盘2TB以上的地址引导:受限于BIOS硬盘的寻址方式,BIOS硬盘采
用32位地址,因而引导扇区的最大逻辑块地址是2的32次方(换算成字节地址,即2的32次方×512=2TB)。

2. UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)定义了操作系统和平台固件之间的接口,它是UEFI Forum发布的一种标准。它只是一种标准,没有提供实现。
其实现由其他公司或开源组织提供,例如英特尔公司提供的开源UEFI实现TianoCore和Phoenix公司的SecureCore Tiano。UEFI实现一般可分为两部分:
‰‰平台初始化(遵循Platform Initialization标准,同样由UEFI Forum发 布)。
‰‰固件-操作系统接口。

UEFI发端于20世纪90年代中期的安腾系统。相对于当时流行的32位IA32系统,安腾是一种全新的64位系统,BIOS的限制对这种64位系统变得不可接受(BIOS也正是随着32位系统被64位系统取代而逐渐退出市场的)。因为BIOS在64位系统上的限制,1998年英特尔公司发起了Intel Boot Initiative项目,后来更名为EFI(Extensible Firmware Interface)。2003年英特尔公司的安腾CPU计划遭到AMD公司的x86_64 CPU顽强阻击,x86_64 CPU时代到来,市场更愿意接受渐进式的变化,英特尔公司也开始发布兼容32位系统的x86_64 CPU。安腾虽然没有像预期那样独占市场,EFI却显示出了它的价值。2005年,英特尔公司联合微软、AMD、联想等11家公司成立了Unif ied EFI Forum,负责制定统一的EFI标准。第一个UEFI标准——UEFI 2.0在2006年1月发布。目前最新的UEFI标准是2013年发布的UEFI 2.4。
UEFI的优点:
UEFI能迅速取代传统BIOS,得益于UEFI相对传统BIOS的几大优势。
(1)UEFI的开发效率
传统BIOS开发一般采用汇编语言,代码多是硬件相关的代码。而在UEFI中,绝大部分代码采用C语言编写,UEFI应用程序和驱动甚至可以使用C++编写。UEFI通过固件-操作系统接口(BS和RT服务)为OS和OS加载器屏蔽了底层硬件细节,使得UEFI上层应用可以方便重用。
(2)UEFI系统的可扩展性
UEFI系统的可扩展性体现在两个方面:一是驱动的模块化设计;二是软硬件升级的兼
容性。
大部分硬件的初始化通过UEFI驱动实现。每个驱动是一个独立的模块,可以包含在固
件中,也可以放在设备上,运行时根据需要动态加载。
UEFI中每个表、每个Protocol(包括驱动)都有版本号,这使得系统的平滑升级变得简单。
(3)UEFI系统的性能
相比传统BIOS,UEFI有了很大的性能提升,从启动到进入操作系统的时间大大缩短。性能的提高源于以下几个方面:
1)UEFI提供了异步操作。基于事件的异步操作,提高了CPU利用率,减少了总的等
待时间。
2)UEFI舍弃了中断这种比较耗时的操作外部设备的方式,仅仅保留了时钟中断。外部设备的操作采用“事件+异步操作”完成。
3)可伸缩的遍历设备的方式,启动时可以仅仅遍历启动所需的设备,从而加速系统
启动。
(4)UEFI系统的安全性
UEFI的一个重要突破就是其安全方面的考虑。当系统的安全启动功能被打开后,UEFI在执行应用程序和驱动前会先检测程序和驱动的证书,仅当证书被信任时才会执行这个应用程序或驱动。UEFI应用程序和驱动采用PE/COFF格式,其签名放在签名块中。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值