统一可扩展固件接口

编辑
本词条由“匿名用户” 建档。

统一可扩展固件接口,是Intel于1998年发布的计算机固件接口定义,Intel也给出了参考实现。Intel为64位安腾架构开发的固件,最初叫做ExtensibleFirmwareInterface,简称EFI。UEFI已成为BIOS的后继者,因此形成了平台固件和操作系统之间的中央接口。 由于UEFI已经取代了IBMPC兼容计算机上以前的固件-BIOS,因此UEFI也经常被称为“UEFI-BIOS...

统一可扩展固件接口

编辑

统一可扩展固件接口,是Intel于1998年发布的计算机固件接口定义,Intel也给出了参考实现。 Intel为64位安腾架构开发的固件,最初叫做Extensible Firmware Interface,简称EFI。 UEFI 已成为 BIOS 的后继者,因此形成了平台固件和操作系统之间的中央接口。

由于 UEFI 已经取代了 IBM PC 兼容计算机上以前的固件 - BIOS,因此 UEFI 也经常被称为“UEFI-BIOS”,其固件设置也经常(仍然)被称为“BIOS 设置”。

UEFI 的显着特征是使用 GUID 分区表,它与 BIOS 使用的主引导记录保持部分兼容、基于帧缓冲区图形支持、网络功能以及自 UEFI 版本 2.3.1 起的安全引导功能使引导仅限于预签名的引导加载程序,旨在防止启动恶意软件或其他不需要的程序。

特点

编辑

与旧的 BIOS 系统不同,UEFI 包含带有平台信息的接口和数据表,以及操作系统加载程序和随后的操作系统可用的引导和运行时服务。 与 BIOS 系统相比,UEFI 固件具有多技术优势:

  • UEFI 独立于 CPU 类型,可以启动不同类型的系统,包括 ARM 架构和 x64。
  • 超过 2TB 的大型硬盘驱动器可与作为 UEFI 的一部分引入的 GUID 分区表 (GPT) 一起使用。
  • UEFI 的所有数据和程序都以常规文件的形式保存在单独的分区中,必须是 VFAT 格式。 与 BIOS 不同,操作系统加载程序等数据不会保存在某些固定且不可更改的内存区域,例如主引导记录 (MBR)。
  • 网络就绪。 与需要网卡 BIOS 中相应驱动程序的旧 BIOS 标准预启动执行环境 (PXE) 相比,UEFI 具有网络功能,并且基于 PXE 程序,允许通过网络直接启动。
  • 通常采用模块化、可扩展的结构设计。 例如,可以在启动过程中调用类似于 Unix shell 的 UEFI shell。
  • 某些数据的xxx存储,例如不同媒体的启动顺序,是根据 UEFI 标准中定义的程序在 NVRAM 中执行的。

历史

编辑

Intel 为 Itanium 架构,寻找 BIOS 替代品的倡议对新开发的 EFI 具有决定性意义。 这个想法在 1998 年成立的英特尔引导计划 (IBI) 计划中得到了详细说明。

BIOS 继任者

最初的 PC BIOS 出现在 1981 年的xxx台 IBM PC 上。 随着 IBM PC 兼容计算机的发展,尽管不断扩展,它已不再满足现代硬件和操作系统的要求。 特别是,就驱动程序而言,它既不支持 32 位也不支持 64 位。 在 2000 年代初,硬件制造商(如 Intel 或 AMD)似乎不再接受进一步弥补这些缺陷的临时解决方案。

EFI 几乎与 x64 指令集扩展同时出现在 x86 架构上,这也使得当时的 32 位 x86 架构 IA-32 变成了 64 位架构。 然而,EFI 最初仅作为 32 位固件实现,例如 在 Apple 的 Intel Mac 中,从 2006 年开始使用 EFI 1.10 版作为固件。 从 EFI 版本 2.0 开始,正式在 x86 上实现了 64 位。

BIOS 的实际继承者是固件基础代码,它根据 CPL(通用公共许可证)的条款发布并实现可扩展固件接口。

为了与 x86 系统上的现有软件保持兼容,BIOS 兼容层与英语兼容性支持模块(简称 CSM)集成在一起。 从2010年左右开始,UEFI逐渐取代了BIOS,这也是它也被称为legacy的原因。 从2020年开始,BIOS兼容模式CSM就被厂商冷落了。

统一 EFI (UEFI)

统一 EFI 论坛成立于 2005 年,旨在促进和进一步发展 EFI。 除了英特尔之外,AMD、微软惠普等众多PC和BIOS厂商也参与其中,以至于现在被称为Unified EFI(UEFI)的接口不再是英特尔一人指定的。 2006年1月EFI版2.0 发布。

安全启动

随着 2012 年 Windows 8 的推出,UEFI 版本 2.3.1 引入了安全引导机制,该机制将引导限制为以前签名的引导加载程序。 这提高了系统启动时的安全性,因为恶意软件制造商无法在没有正确签名的情况下干预此过程。 这使得从硬件固件到用户应用程序的不间断“信任链”的安全开始成为可能。 但是,这并不妨碍链条中的每一个环节也都可以加载“不可信”的软件。 例如,Shim 是一个由 Microsoft 签名的引导加载程序,可以通过它加载未经认证的 GRUB 和任何其他二进制文件。

Shim 成为必需,因为许多主板制造商仅在其 UEFI 实现中提供 Microsoft 产品的签名,并在其硬件上安装用户特定的签名,例如 B. 对于 Linux 内核的安装,不可能或至少不仅可能使用 UEFI 板载资源。 几乎所有当前的 Linux 发行版都使用 Shim 在启用了安全启动的机器上启动。

实施

编辑

天芯EDK2

对于 TianoCore EDK2,参考实现在 BSD 许可下可用。 这是基于英特尔之前的开发。

潜艇

自 2017 年以来,UEFI API 已在通用引导加载程序 (Das U-Boot) 中可用。 在 ARMv8-A 架构上,Linux 发行版使用 U-Boot UEFI 实现以及 GNU GRUB 进行引导。 OpenBSD 还使用 UEFI API 从 U-Boot 引导。

备选方案

编辑

对于 PowerPC 和 SPARC 计算机,独立于平台和处理器的基于 Forth行业标准开放固件 (IEEE-1275) 于 1994 年指定用于 Unix 工作站和服务器。 Intel 自己开发的 EFI 与 Open Firmware 相比的显着技术优势,除了执行速度显着提高,在当时还不为人知。

另一种选择是固件 coreboot,它根据 GPL 许可获得许可。 Coreboot 是一个最小的系统,它只会将硬件初始化到可以调用另一个程序(所谓的有效负载)的程度,例如 Linux 内核、GRUB 等引导加载程序,以及 BIOS 等替代固件(使用 SeaBIOS)、Open Firmware 或 UEFI。

统一可扩展固件接口

技术和可能性

编辑

EFI 接口旨在消除自 1980 年代以来广泛存在的 BIOS 的缺点,并开辟新的可能性。 根据 EFI 规范,这些包括:

  • 易于扩展(例如用于数字版权管理)
  • 嵌入式网络模块(用于远程维护
  • 预启动执行环境(通用网络启动系统)
  • 在计算机启动时支持高分辨率显卡
  • 通过“兼容性支持模块”(CSM) 进行的可选 BIOS 仿真,以确保与不支持 UEFI 且需要 BIOS 的现有操作系统兼容
  • 可用于调用 EFI 应用程序 (*.efi) 等的 shell
  • 驱动程序可以作为一个模块集成到 EFI 中,这样它们就不必再由操作系统加载。 与开放固件一样,独立于系统的驱动程序也是可能的。
  • 系统可以在沙箱模式下运行

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/376378/

(11)
词条目录
  1. 统一可扩展固件接口
  2. 特点
  3. 历史
  4. BIOS 继任者
  5. 统一 EFI (UEFI)
  6. 安全启动
  7. 实施
  8. 天芯EDK2
  9. 潜艇
  10. 备选方案
  11. 技术和可能性

轻触这里

关闭目录

目录