英语原文共 15 页,剩余内容已隐藏,支付完成后下载完整资料
超越 BIOS: 探索统一的可扩展固件接口
标记多伦
英特尔公司
文森特 j。英特尔公司
迈克尔。
英特尔公司
'平台固件和 OS 加载器之间的高级 C 语言接口似乎很自然.'
本文介绍了 UEFI 论坛所制作的规范的基本功能以及这些标准的发展历史。
介绍
本文的目的是描述 UEFI 的基本能力。
论坛规范包括 UEFI 规范版2.3.1、平台初始化规范1.2 版, 以及 UDK2010 的结构和使用, 开源实现 UEFI 论坛规范。这些技术的历史和演变为这些描述提供了一些上下文。
起源
第一次被认为是 UEFI 技术的直接祖先的努力有一个非常具体的战术目标。1997年, 英特尔的人们正在研究如何根据未来的安腾reg;处理器家族启动计算机。最初的计划是使用传统的 BIOS 代码库来进行这项工作: 虽然更多或更少的其他有关机器的东西将是新的处理器, 芯片组, 板设计, 操作系统, 等等-它感到, 保持稳定的一个元素机器食谱一个已知的数量将有一定的优势。没有详细说明, 这个计划最终被证明是不可行的技术和商业原因。这就给出了如何在这些平台上启动 OS 的问题, 而不到一年的时间来进行解决。
这一挑战催生了 intel 内部的努力, 它被称为 '英特尔启动计划' (IBI), 专门针对基于 Itanium 处理器的计算机的引导范式的开发。IBI 的努力考虑了一套替代方案, '使' 与 '购买', 其中包括通过 IEEE 开放固件标准, 使用电弧平台标准, 当然, 并建立一个解决方案从头开始。开放固件标准提供了一个很好的技术解决方案, 但在可用的时间内部署的业务基础结构方面却不足, 而 ARC 平台标准最终在平台设计上过于规范。同样, 其他 '购买' 替代方案在可用时间内没有提供明确的部署路径。因此, 决定采取新机制的内部发展。
| 超越 BIOS: 探索统一可扩展固件接口的许多维度 |
平台固件和 OS 加载程序之间的高级 C 语言接口看起来像是安腾处理器机器的一个自然问题, 因为低级别编程的复杂性, 以及让 os 对平台硬件了解得很少的可取性。在能够加载 OS 驱动程序之前尽可能详细说明。经过了这一飞跃, 从那里可以很短的跃迁来想象一个 CPU architecture–neutral API 用于启动过程的固件和 OS 通信。
促进操作系统和固件创新的抽象接口
拥有这样一个接口并具有广泛适用于一般计算机的价值是由 IA-32 平台上的经验驱动的: 在那里, OS 历史上有硬编码的假设关于存在平台硬件设备的操作和熟悉系统 BIOS 的许多部分的内部组件。IA-32 的所有这些因素都阻碍了变革, 使创新变得棘手和相对昂贵。显然, 一项后续技术能够缓解平台和操作系统为各自实现共享私密细节的需要, 这将为平台和操作系统的创新率带来一个脱钩的机会。
这组实现导致了刚起步的固件界面的第一大范围的增加。通过采用 CPU ISA–neutral 方法, 程序的范围可能会增加, 以覆盖更多的英特尔处理器系列。即使在二十世纪九十年代代末, 在 IA-32 电脑上使用的传统 BIOS 也开始成为创新的累赘。因此, 新固件接口的设计者将注意力转向包括引导 IA-32 处理器和原始任务的能力。这是在1999下旬的这个时候, IBI 程序产生了新的接口的初始规格。范围的变化和有意在操作系统前的空间中培养一个有利于创新的环境知情地选择新规范的名称: 可扩展固件接口 (EFI)-中性到任何特定类型的计算机, 故意仅描述接口 (并且显式不实现生产者 [BIOS] 或使用者 [OS]), 并调用该接口将成为将来添加的基线的想法。
EFI 是第一代基于 Itanium 处理器的计算机采用的, 从那以后一直是启动接口。英特尔在2000年12月发布了 EFI 规范1.02 的初始版本, 涵盖了将控制从平台固件转移到操作系统所需的操作范围。从一开始, 英特尔就将对 EFI 的采用的障碍保持在低如实际, 很少如果任何许可限制和无版税的示例实施代码。采用低门槛原则对目前的技术管理是至关重要的。
对那最初的出版物 EFI 规格1.10 在晚2002增加了。此更新的规范添加了一个固件驱动程序模型, 它解决了在引导过程中使用外接程序卡设备的问题, 并提供代码来操作那些, 而不需要对每个设备的操作系统启动加载器进行更改。实质上, 这提供了一条路径来取代第一次高级的 ISA 总线设备的16bit 选项 rom 的脆弱系统, 并随后采用 PCI 启动设备。
'即使在二十世纪九十年代代末, 在 IA-32 电脑上使用的传统 BIOS 也开始成为创新的累赘.'
超越 BIOS: 探索统一可扩展固件接口的许多维度 | |
'EFI 是第一代基于 Itanium 处理器的计算机采用的, 从那以后一直是启动接口.'
'由 BIOS 供应商、OS 供应商、系统制造商和硅生产公司组成的一批行业利益相关者同意组建统一的 EFI 论坛.'
'除了各种规格的实现之外, 论坛还促进了为 UEFI 规范和 PI 规范创建测试套件。
行业支持: 统一EFI论坛的问世
IA-32 家族的收养将会缓慢地增长势头, 但在2005初的商业环境和技术限制下, 人们清楚地知道, 传统的 BIOS 技术最终将耗尽蒸汽。认识到成为向市场提供 IA32 平台的基础设施的关键部分是一个多边工业拦截, 包括 BIOS 供应商、OS 供应商、系统制造商和硅的行业利益相关者组生产公司同意在 mid-2005 建立统一的 EFI 论坛, 并为这一技术提供长期的家庭和治理模式。
英特尔将 EFI 规范作为新论坛工作的出发点, 并且创始发起人成员以一种真正统一的方式工作, 生产出具有广泛行业支持和认可的规范。该论坛的最初出版物《 UEFI 规范2.0 》于2006年1月出版。
与固件和操作系统接口的工作并行, 论坛同意在实施 UEFI 规范的过程中为内部构建机制的接口进行标准化工作。这项工作导致在2006年10月发布了平台初始化 (PI) 规范1.0。此五卷集旨在使硅组件支持固件能够在各种系统构建公司开发的平台上对固件进行未修改的工作, 从而简化和缩短新产品世代的部署工作。PI 规范的最新版本是在2008年2月发布的1.1 版。
论坛继续围绕 UEFI 规范的更新建立共识, 于2007年1月发布版本2.1。除其他外, 这还引入了基础结构, 从而为操作系统之前的空间提供了更多的图形化、更好的本地化用户界面。
版本2.2 在2008年9月引入了 IPv6 支持网络, 也改进了平台安全基元。然而, 2.2 版作为最新/最伟大的统治相对较短, 主要是由于在规范的后面的执行世界中的工作。
开源固件实现
英特尔最初已经提供了原始 EFI 规范的开源示例实现。随着 EFI 规范演变为 UEFI 规范并交付了 PI 规范的实现, 该工作继续进行。此实现发现了一个永久性的家庭, 因为 EFI 开发工具包开源项目仍然位于 www。TianoCore.org. 这被称为 EDK 的历史原因, 虽然今天的执行当然符合 UEFI 论坛的 EDK II (第二代) 形式的规格。
除了各种规格的实现之外, 论坛还促进了为 UEFI 规范和 PI 规范创建测试套件。这些测试旨在帮助开发人员构建高
质量实现的规范, 是另一个例子的哲学, 使 UEFI 一个简单的技术, 在这种情况下, 通过提供有用的工具, 为开发商免费。
完成规范图片
与开源项目通常发生的情况一样, 感兴趣的各方也会找到新的和有趣的方法来使用代码。在 EDK 的情况下, 一些公司发现该代码在基于 ARM 的平台上很有用。在成功的端口到 ARM 平台之后, 建议为 UEFI 规范添加一个 ARM 绑定。论坛于 2009年5月完成了这项工作, 导致出版了该规范的2.3 版。
该规范的2.3 版代表了英特尔体系结构固件周围社区的一个有趣的里程碑。该规范表示启动过程的所有接口都在正式文档中的第一个时间点, 并在整个行业范围内就内容达成协议。
期待
UEFI 规范的最新版本现在 2.3.1, 顾名思义, 它是基于2.3 版本的增量版本。新的领域改进了对可伸缩平台安全解决方案的支持, 并有助于支持引导过程的更快、更复杂的外观和感觉。
随着国家的规范现在赶上了目前的平台设计需求, 注意力转向驱动技术, 以提高和扩大在操作系统前的空间能力。第一个这样的努力, 在启动时间的大幅减少, 可能似乎违反直觉在这个框架-创新实际上是做较少不更多的在前 OS 空间。然而, 这显然代表了在对整个市场的吸引力方面迈出的一步, 同样的是, 在很大程度上依赖于从彼此之间的固件和 OS 实现的抽象, 这是 UEFI 设计的一部分--启动、固件平台组件初始化和操作系统启动的实现可以进行优化, 以便更好地相互作用, 总体上有显著的改进。
UEFI 技术已经在广泛使用, 从智能手机到打印机, 笔记本电脑, 服务器, 甚至超级计算机都是如此。有新的设备和平台技术的前景, 将受益于更容易通过 UEFI 缩短上市时间。有新类型的平台, 如芯片系统开始采用 UEFI 技术的基础设施, 在新的产品类别。简而言之, UEFI 技术正在帮助为部署和支持提供广泛的业界协作支持的计算平台创新的前沿力量。
'随着现状的规范现在赶上了目前的平台设计需求, 注意力转向驱动技术, 以改善和扩大在操作系统前空间的能力。
'UEFI 技术已经在广泛使用, 从智能手机到打印机, 笔记本电脑, 服务器, 甚至超级计算机都是如此.''UEFI 是一个纯接口规范, 它不指示平台固件是如何生成的。'如何' 被降级为 PI。
这在生态系统中有何契合?
当我们讨论 UEFI 时, 我们需要强调 UEFI 是一个纯接口规范, 它不指示平台固件是如何生成的。'如何' 被降级为 PI。UEFI 的使用者包括但不限于操作系统装载机、安装程序、启动设备的适配器 rom、preOS 诊断、实用程序和 OS 运行时 (对于小型 UEFI 运行时服务)。不过, 总的来说, UEFI 是关于引导, 或者将控件传递到连续的控制层, 即操作系统加载程序, 如图1所示。UEFI 提供了许多有趣的功能, 并且可以作为某些应用程序集的有限运行时存在, 代替加载一个完整的、收缩包装的多地址空间操作系统, 如 Microsoft Windows *、苹果 OS X *、hp-ux * 或 Linux, 但这不是主要的设计目标。
(来源: 英特尔公司, 2010)
另一方面, PI 对于操作系统前的启动设备、操作系统和装载者来说应该很不透明, 因为它涵盖了平台构建中与这些用户无关的许多软件方面。PI 改为描述从平台复位到操作的成功阶段的控制阶段, 包括与 UEFI 兼容的环境, 如图2所示。事实上, PI DXE 组件是首选的 UEFI 核心实现。
图 2:pI 和框架适合于平台引导流的位置
(来源: 英特尔公司, 2010)
在框架对 pi 的进化过程中, 有些东西被省略了, 包括在 pi 规范中。具体地说, CSM 规范在 PC/AT 系统上抽象启动。这需要一个 x86 处理器, PC/在硬件复杂 (例如, 8254, 8259, RTC)。CSM 还继承了其他常规的 BIOS 启动限制, 例如主启动记录 (MBR) 分区表的 2.2 TB 磁盘限制。对于一个 PI 和 UEFI 的世界, 您可以获得所有的 x86 功能 (IA-32 和 x64, 分别是)、ARM *、安腾reg;和未来的 CPU 绑定。此外, 通过轮询驱动程序模型设计、UEFI api 和 PI DXE 体系结构协议, 从所有的消费软件中抽象出平台和组件硬件细节。其他次要遗漏也包括数据中心支持。后者已被专门构建的基础结构所取代, 以在基于框架的实现中填充数据集线器的角色, 如 SMBIOS 表创建和代理记录报表状态代码操作。
然而, 在 PI 之外发生了什么, 包括添加多处理器协议、Itanium E 萨尔和 MCA 支持、abovelisted 报告-状态代码侦听器和 SMBIOS 协议、ACPI 编辑协议和一个协议。通过将框架抵押品转移到 PI, 对系统管理模式 (SMM) 协议和基础结构进行了重大更新, 以便从更通用的组件中抽象出各种 CPU 和芯片组实现。在 DXE 的前面,
'一些增加发生在裴基金会的最新发展的巴士, 如 PCI 快递 *。
'鉴于没有足够的 ROM 空间, 还有鉴于客户对启动时间的要求, 如需要' 立即开机 ', 这种开销必须由 PI 模块启用的业务价值来平衡。
'有大量的 Frameworkbased 源代码实现, 例如派生或依赖于 EDK I (EFI 开发者套件版本 1) 的, 可以在 www.tianocore.org 上找到。
考虑到 UEFI 2.3 不相容性, 添加了小的清理。一些补充发生在裴基金会的最新发展的巴士, 如 PCI 快递 *。在所有这些情况下, 对 SMM、PEI 和
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[24915],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。