UEFI的诞生与优势
UEFI的诞生
随着CPU及其他硬件设备的技术革新,CPU和操作系统已支持到64位,而BIOS却还停留在16位;主板上更加丰富多样的扩展设备,也让BIOS愈加无能为力,使得硬件无法完成初始化。现实表明,BIOS已经无法满足软硬件高速发展的需求,成为了计算机体系发展的瓶颈。经济学规律告诉我们,哪里有需求哪里就有市场,于是新的引导技术就在偶然也是必然中出现了。
1997年,Intel联合惠普开发出了首颗面向高端服务器市场的基于安腾(Itanium,也称为IA-64)架构的64位处理器。而当时的BIOS已经无法满足Intel的需求,所以Intel于1998年启动了名为“Intel Boot Initiative”的项目来解决系统引导问题,后来Intel将此项目的规范公开并命名为EFI(Extensible Firmware Interface),即可扩展固件接口。
IA-64构架属于全新构架平台,而市面上的计算机全是32位的x86架构,如果想让程序在IA-64平台的计算机上运行,就必须重新编译,出于成本和惯性思维考虑,可以想象市场接受IA-64是多么困难。不出所料,IA-64的销量不容乐观,仅HP一家坚持使用;2003年,AMD发布第一颗能兼容32位的基于x86-64(AMD64)架构的64位处理器:Opteron,并于同年发布了面向桌面端计算机的Athlon 64,受到了市场的青睐;最终Intel决定放弃对IA-64的重点投入,将主要精力转投AMD 的x86_64架构。
虽然IA-64没有取得成功,但EFI凭借着其良好的结构设计存活下来并大放异彩。鉴于EFI的优越性,2005年,CPU生产厂商联合BIOS供应商,OS供应商以及系统制造商等行业内11家知名企业(分别是:AMD, American Megatrends, ARM, Apple, Dell, Hewlett Packard Enterprise, HP Inc., Insyde Software, Intel, Lenovo, Microsoft, and Phoenix Technologies)共同建立了UEFI论坛,该论坛属于非营利性公司,负责开发、促进和管理UEFI的规范的演进。Intel将EFI规范和相关的测试套件移交给UEFI论坛,微软也提供了相应的技术资料,更新了规范内容,形成了新的UEFI(Unified Extensible Firmware Interface)规范, 该规范定位于接口规范,不涉及具体的固件实现。2006年1月31日,UEFI论坛推出第一个新的标准UEFI2.0。
从2005年至今,UEFI规范标准已经升级至2.10,在行业的积极推动下,UEFI成为替代BIOS的主要驱动系统的技术,2007年苹果公司率先在MacBook Pro中使用了UEFI技术,随后同一年微软也在Vista SP1中使用UEFI技术,开始了UEFI替换BIOS的技术迭代,特别是Wintel在PC市场上取得的巨大成功,让UEFI引导方案从众多技术中脱颖而出,成为了当下的主流。
UEFI的特点
UEFI可视为一个微型的操作系统,但无法替代操作系统的角色,设计之初,就被限制了功能,不提供中断和缓存机制,其主要功能有两个:
1. 平台初始化(Platform Initialization),为各类硬件提供初始化服务;
2. 提供固件接口,为上层应用(包括操作系统)提供调用接口,抽象底层硬件;
相比BIOS,UEFI的优势大致有以下几点:
1. 更安全的防护措施,更有效的签名验证机制;
UEFI中引入了Hash校验和数字签名等技术,从源头上防止数据的篡改;安全启动模式从根开始验证加载模块的数字签名,只有通过验证,才会运行模块程序;UEFI还能检测运行模块是否在禁止加载的黑名单中,如果在黑名单中,同样禁止程序运行。
2. 支持KMS(Key Management Service)
支持Internet Key Server和HSM(Hardware Security Module)或者其他类型的KMS Provider,对密钥进行管理和存储。
3. 支持GPT的分区方式,突破了硬盘容量限制,可以引导超过2T的硬盘;
GPT分区标准作为UEFI标准的一部分,支持每个磁盘最大128个主分区,8 ZiB容量(每扇区512字节)或者64 ZiB(每扇区4096字节)。
4. 支持异步调用,开机速度快,可识别文件系统;
UEFI支持异步事件调用,放弃了BIOS的中断方式,让CPU可以在相同的时间内做更多的事情;UEFI支持FAT32文件系统,抽象了底层硬件I/O,通过文件方式访问磁盘比直接访问扇区更有效率, BIOS每次只能通过INT0x13按扇区读取硬盘数据,而UEFI可以读取任意长度;UEFI也不必再从磁盘的固定位置读取引导代码,引导代码可以放在任意路径下。
5. 支持多语言,更友好的GUI;
BIOS永远只能是单调的单色背景,纯英文的文字选项,而UEFI可以提供本地化即多语言的功能,还能设计出对用户更友好,内容更丰富的GUI交互。
Legacy BIOS界面
UEFI界面
6. 支持多种协议:USB、SCSI、ACPI、TCP/IP,PCI等
大部分的硬件初始化都在UEFI中完成,UEFI也支持安装硬件驱动程序,能驱动复杂的扩展硬件设备;UEFI还具有网络功能,在不进入操作系统的情况下进行网络通讯。
7. 支持C语言,易开发,易维护;
UEFI的大部分实现都使用C语言,并且支持C运行时库,将普通的C代码迁移到UEFI中,只需要很少的工作量,应用程序和驱动程序甚至可以使用C++。
8. 模块化的设计;
UEFI对底层硬件进行了抽象,采用模块化设计,降低耦合性,通过固件接口(Boot Service和Runtime Service)向上提供服务,屏蔽了底层硬件实现细节,简化了UEFI上层应用的调用;整个UEFI环境分7阶段运行:SEC(安全验证)->PEI(EFI前期初始化)->DXE(驱动执行环境)->BDS(启动设备选择)->TSL(操作系统加载前期)->RT(Run Time)->AL(系统灾难恢复期),每个阶段只负责处理自己的部分,完成后转到下个阶段。
UEFI阶段运行示图
UEFI架构图
Boot Service主要向上提供事件处理、时间和任务优先级相关设置,内存分配,外设管理(注册、注销、安装、卸载、响应等),映射加载等服务。
Runtime Service主要限制中断响应,提供时间服务(运行时阶段),虚拟内存映射和其他各种(如Reset,获取monotonic计数,更新固件等)服务。
参考资料:
1. 《UEFI原理与编程》—— 戴正华
2. 《Unified Extensible Firmware Interface(UEFI) Specification》
3. 《UEFI Platform Initialization (PI) Specification》
UEFI的诞生与优势相关推荐
- 固件类型bios好还是uefi好_uefi启动是什么意思 UEFI启动对比Bios启动优势在哪里
UEFI是一种详细描述类型接口的标准.这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上.通俗的说,UEFI是一种新的主板引导初始化的标注设置.那么UEFI启动和Bios启动之间有何区别 ...
- uefi启动适合什么计算机,uefi启动是什么意思 UEFI启动对比Bios启动优势在哪里
UEFI启动是一种新的主板引导项,正被看做是有近20多年历史的BIOS 的继任者.顾名思义,快速启动是可以提高开机后操作系统的启动速度.由于开机过程中UEFI的介入,使得Windows 8的开机进入系 ...
- UEFI启动是什么意思 UEFI启动对比Bios启动优势在哪里
新型UEFI,全称"统一的可扩展固件接口"(Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准.这种接口用于操作系统自动从 ...
- 服务器的BIOS引导模式设置为什么,Legacy BIOS 引导模式和 UEFI 引导模式
Legacy BIOS 引导模式和 UEFI 引导模式 服务器配备有统一可扩展固件接口 (Unified Extensible Firmware Interface, UEFI),可以将其配置为支持 ...
- ami主板uefi_BIOS和UEFI 你真的认识?
昨天有小伙伴问小编,电脑的BIOS和UEFI究竟什么区别?因为都是电脑启动时候一闪而过,看起来似乎就是速度快慢的差别.还有就是以前小编曾经提到过启动方式的不同,比如UEFI+GPT的启动模式,但是BI ...
- easyuefi只能在基于uefi启动的_只需2个命令,就能将win10 BIOS启动方式转换为UEFI,你见过吗!...
平常如果大家有使用启动U盘进行重装系统的话,就会知道其实U盘有三种启动方式:快捷键,BIOS还有UEFI.快捷键这种方式最为简单,而且容易操作,只需要在开机界面中按下提前查询到的快捷按键就能成功启动U ...
- uefi下的开机顺序_动态修改UEFI启动顺序的方法与流程
本发明涉及计算机领域,其主要 技术实现要素: 是动态修改UEFI启动顺序的方法. 背景技术: 固件是固化在Flash芯片中的软件程序.BIOS是计算机中最重要的固件之一,用于初始化硬件.管理硬件资源. ...
- iot架构 mqtt netty_Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上
前言 诞生及优势 MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿越沙漠的石油管道.目标 ...
- HDD与OS的江湖恩怨
最近在做系统的时候,突然想到不同系统的安装总是要先要设置一番的BIOS,有时候改几项设置就好了,有时候改完几项还不好,加上近几年出现UEFI之后也很少研究装机装系统的事情,想趁此机会把这方面的东西略微 ...
- 7宗命案,潜逃23年,大数据还是认出了她
导读:一个女人,背着7宗命案,潜逃国内23年.自以为很侥幸,然而天网恢恢,疏而不漏.一颗摄像头,最终还是"抓"到杀人犯劳某枝. 本文经授权转自公众号CSDN(ID:CSDNnews ...
最新文章
- java hashmap实例,关于java中的HashMap的实例操作
- 深入理解 JVM Class文件格式(四)
- 【Scheme归纳】5 数据结构
- 在iView中动态创建表格
- jupyter notebook常用命令
- 编译原理语义分析_编译原理 第一章 绪论
- ans函数python_#12 Python函数
- 也看《猎场》:几经秋冬,青春不在,一切皆贾,蓦然回首,伊人如故
- HTML:在HTML前端界面中直接显示代码
- 管理感悟:宁可五个阶段做三个月,绝不一个阶段做二个月
- 代码对比工具,我就用这5个
- 第十一届蓝桥杯大赛软件类省赛第二场 C/C++ 大学 B 组 附蓝桥杯官网网址
- springboot easyexcel 导出excel案例及文件无法打开
- 模糊c–均值聚类算法的原理解释及推导
- 微博如何快速批量取消关注脚本教程
- mysql 报ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUT
- 大白菜u盘装win10步骤图解
- 网站同时支持IPv4和IPv6及仅支持IPv4的程序巧妙转换到支持IPv6
- 怎样查询SCI和EI检索号
- 需要细读的好文章(搜集)
热门文章
- NMF扩展名是什么文件
- 删除服务器远程桌面痕迹,清除3389连接后留下的日志,清除3389远程桌面连接记录...
- acer软件保护卡怎么解除_Acer软件保护卡使用说明资料
- 有关计算机专业工作室的名字,盘点最好听的工作室名字大全
- 《应用时间序列分析:R软件陪同》——第 3 章 一元时间序列数据的拟合及预测 3.1 一些估计和预测方法的基本数学原理...
- IDEA 思维导图 ,类UML 图工具插件 plantUML integration
- 基于单片机的KTV智能调光系统设计
- Houdini 笔记2
- IC卡CPU卡32位单片机S3系列接触式读写模块分类与性能攻略
- iOS 动画篇 - pop动画库