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》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/354183.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

UEFI shell - 标准应用程序的编译和加载过程

一、标准应用工程编译 首先了解下,应用程序是怎么被编译成.efi文件: UefiMain.c首先被编译成目标文件UefiMain.obj连接器将目标文件UefiMain.obj和其他库连接成UefiMain.dllGenFw工具将UefiMain.dll转换成UefiMain.efi 说明:连接器在生成UefiMain.dll时使用了/dll/entry:_Mo…

UEFI开发,记录第一场胜利——调用一个自己编写的protocol

本文参考BIOS/UEFI基础——Protocol介绍 大四第一个签三方的工作,BIOS的开发,第一次接触这个领域,在实习之前很好奇,也很有兴趣,但是学习BIOS在一开始注定要碰多次碰壁,实习第三周第二天,终于写…

linux系统nohob安装,Linux启动详解1

一、固件运行 本部分主要参考 戴正华 著《UEFI原理与编程》 CPU在加电后会进入16位实模式状态运行,同时CPU的逻辑电路设计为加电瞬间将CS的值设置为 0xF000、IP的值置为0xFFF0,这样CS:IP就指向0xFFFF0这个地址位置。然后开始执行固件 固件的执…

《UEFI原理与编程》读书笔记

《UEFI原理与编程》读书笔记 读书笔记仅摘取对个人有用的部分,详细内容请阅读原著 目前更新至第七章,因个人仅需要引导程序,故其余部分未介绍,详细内容请阅读原著 书及其资料均已放置在本人资源中,如需下载请移步资源模…

UEFI简介

前言 大多数人接触UEFI都是在PC的应用场景上,有在PC上安装过多操作系统的经历的同学,通常会进入UEFI界面设置操作系统引导顺序、CPU虚拟化等设置。UEFI诞生之初也确实是作为BIOS的替代者,主要应用在PC电脑上。随着手机/平板等移动设备的发展&…

10月书讯(上) | 小长假我读这些新书

华章科技提前祝大家国庆快乐 7天小长假,正是读书好时节 又到上新季,读书与休假更配哦 10月书讯(上)请查收 快来看看哪本书最属你心意 参与文末赠书活动,好书就要抢先读 — 新书速览 — 1、《计算机系统解密&#xff1a…

UEFI启动流程浅析

BIOS启动流程 SEC(Security Phase,安全阶段)阶段 SEC阶段是平台初始话的第一个阶段,计算机系统加电后首先进入这个阶段。 CPU上电之后,首先会进行硬件初始化(hard reset) 其次会进行可选的自检…

UEFI规范实现EDKII项目学习笔记绪论[0]

UEFI规范实现EDKII项目学习笔记绪论[0] 2015-07-10 北京海淀区 张俊浩 这段时间在学习UEFI( Unified Extensible Firmware Interface,统一的可扩展固件接口),熟悉EDKII(EFI Developer KitII,EFI开发工具包)项目,…

3.UEFI-edk2 增加中文显示

UEFI-edk2源码中默认只有英文和法文的字库,在UI界面上或者shell终端打印中文字符串,则无法显示。例如,上一篇博客中的TestoneApp.cpp中,增加一行带中文字符串的打印: Print(L"Hello, world!\r\n");Print(L&…

UEFI原理与编程(一)

第一章 UEFI概述(Unified Extensible Firmware Interface 统一的可扩展固件接口) 常见缩写及描述: 缩略词全名描述UEFIUnified Extensible Firmware Interface统一的可扩展固件接口BSBoot Services启动服务RTRuntime Service运行时服务BIOSBasic Input Output Sys…

UEFI学习——事件函数WaitForEvent和CreateEvent/CreateEventEx

本文参考戴正华《UEFI原理与编程》 1.等待事件的服务WaitForEvent 启动服务中的WaitForEvent服务的函数原型: /**等待Event数组内任一事件被触发retval EFI_SUCCESS 下表为*index的事件被触发retval EFI_UNSUPPORTED 当前的TPL不是TPL_AP…

开宗明义—UEFI介绍 (二)

UEFI介绍 声明 上一篇介绍了UEFI的发展历史,以及对UEFI在ARM嵌入式领域的生态状况做了简单的调研。本篇旨在对UEFI规范和PI规范的内容以及二者之间的关系做一个简单的梳理。 本篇参考内容主要来源于以下3方面: (1) 微信公众号“ Wolf UEFI社区 ”系列文章…

UEFI学习——使用gRT->GetVariable读取Setup选项值

先列出代码&#xff0c;程序的解释在后面。 代码&#xff1a; #include <Uefi.h> #include <Library/UefiBootServicesTableLib.h> #include <Library/UefiRuntimeServicesTableLib.h> #include <Library/DebugLib.h> #include <Universal\DriverS…

2.1 对称量量化和非对称量化

前言 int8的数据范围可以表示为-128到127之间的整数 uint8的数据范围可以表示为0到255之间的整数 注释&#xff1a;int8就是用8个比特位来保存整数&#xff0c;第一位用来表示符号。uint8表示无符号整数&#xff0c;没有符号位&#xff0c;8个比特位全部用来表示整数。 1.问题…

Zinx框架学习 - 连接管理

Zinx - V0.9 连接管理 每个服务器的能够处理的最大IO数量是有限的&#xff0c;根据当前服务器能开辟的IO数量决定&#xff0c;最终决定权是内存大小现在我们要为Zinx框架增加链接个数的限定&#xff0c;如果超过⼀定量的客户端个数&#xff0c;Zinx为了保证后端的及时响应&…

澳网:公茂鑫/张择创历史 中国男网夺大满贯首胜

资料图&#xff1a;张择在比赛中。 中新网1月16日电 16日&#xff0c;2019年澳大利亚网球公开赛男双第一轮展开争夺&#xff0c;中国组合张择/公茂鑫苦战3盘战胜马特沃斯基/克里赞&#xff0c;收获中国男网在大满贯正赛的首场胜利&#xff0c;创造历史。 首盘比赛&#xff0c…

吴易昺,创造历史

中国网坛历史性一刻图片 当地时间2月12日 在ATP250达拉斯男单决赛中 中国球员吴易昺&#xff08;bǐng&#xff09;延续出色状态 顶住对手44记ACE的猛烈冲击&#xff0c;化解四个赛点后&#xff0c;以6-7(4)、7-6(3)、7-6(12)击败伊斯内尔&#xff0c;夺得个人以及中国大陆男网…

百合网“免费”革命 一场饮鸩止渴的大戏

在线婚恋市场一直以来都是有风乍起&#xff0c;吹乱一池春水的同时&#xff0c;也往往会带来自身的迷茫。 刚宣布融了15亿资的百合网计划下一步登陆A股&#xff0c; 于是推出了免费沟通的杀手锏&#xff0c;更是号称要彻底颠覆婚恋行业——果然是腰包鼓了&#xff0c;说话都财大…

澳网见证三巨头书写伟大时代 中国军团多点开花

中新网客户端北京1月28日电(记者 岳川) 随着排名世界第一的德约科维奇在男单决赛中直落三盘击败老对手纳达尔&#xff0c;2019年度澳大利亚网球公开赛大幕落下。这是一届注定会在未来被时常提起的赛事&#xff0c;罗德-拉沃尔球场见证了女单新霸主的诞生&#xff0c;见证了德约…

全球最大同性交友平台骚操作

文章目录 搜索快捷键高亮显示插件 github作为全球最大代码库&#xff0c;日常学习or工作都离不开她&#xff0c;这里介绍一些平时使用方面的技巧。 搜索 比如我们需要搜索spring boot相关的项目&#xff0c;如果直接搜索spring boot&#xff0c;结果如下&#xff1a; 可以看到…