UEFI会取代SMBIOS和ACPI等标准吗?

我一直想知道,作为一个对操作系统背后发生的事情几乎没有经验的开发人员,为什么固件如此混乱。我试图至少了解这些部分适合的位置。UEFI 是否试图取代所有这些以前与固件交互的标准,或者它合并了它们?

回答

不。

UEFI 是不同于 ACPI 和 SMBIOS 的标准。

UEFI 的创建旨在标准化操作系统和固件之间的接口,以便引导操作系统。
启动时,操作系统处于特殊位置,需要与硬件对话才能加载自身的其余部分,但它需要自身的其余部分(驱动程序)与硬件对话。

提供固件服务是为了为操作系统提供与硬件对话的最小支持。
但是这些服务从来没有被正确地标准化,它们是从约定俗成的和遗留下来的(例如,16 位实模式 BIOS 接口,古老的 C/H/S 驱动器几何结构以及各种解决磁盘大小限制的方法,并且没有标准分区或其他清晰的地方来放置超过 1 个扇区(512 字节)的引导加载程序代码)。

UEFI 使界面现代化。引用:

建立在现有投资的基础上。在可能的情况下,规范避免在现有行业规范提供足够覆盖的领域重新定义接口和结构。例如,ACPI 规范为操作系统提供了发现和配置平台资源所需的所有信息。同样,规范设计的这种哲学选择旨在将其采用的障碍保持在尽可能低的水平。

UEFI 规范的第 1.3 节(目标)列出了 UEFI 的目标。


ACPI是一种标准化接口,用于将信息(以表格和字节码的形式)从固件传递到操作系统。
某些硬件无法发现,操作系统只能通过包含大量存在测试和驱动程序来支持它。
但是固件知道硬件,因为它是用一组开关编译的,由人工设置,与硬件匹配。
ACPI 是固件将此信息传递给操作系统的方式。实际的规范本身更复杂,因为它包括一个完整的抽象命名空间,其中包含可执行方法和各种概念。
但想法很简单:通知操作系统有关硬件的信息。


SMBIOS确实与 ACPI 有部分重叠;它们是由不同组织设计的两个标准。
SMBIOS 比 ACPI 或 UEFI 简单得多:它仅限于向操作系统报告一组静态信息。
ACPI 为操作系统提供管理硬件的信息,而 SMBIOS 规范主要提供人类可读的信息(例如固件版本或设备安装在哪个物理 PCI 插槽中)。

请注意,SMBIOS 中的 SM 表示 System Management,它与 SMM(系统管理模式)中的 SM 冲突。
事实上,通过 SMBIOS,我错误地认为您的意思是在 SMM 中运行的固件部分(我猜这部分被称为相同)。
SMM基本上是一种事件驱动机制,可以对操作系统透明地回调固件。
此功能用于在软件中实现一些硬件功能(即模拟它们,如旧版 PS2 支持或 fTPM),以响应操作系统无法处理的关键事件(错误或热故障)或透明地欺骗操作系统管理目的(例如重启、按键-视频-鼠标服务等)。


请记住,这些规范是由不同的人在不同的时间制定的。(但 UEFI 和 ACPI 目前由同一组织维护。)
一旦标准被足够多的软件(或进口足够多的软件公司)采用,它就会永远存在。

您可能已经知道这张图片:

(请注意,“EFI OS Loader”实际上是操作系统的一部分,而不是 UEFI。它固件加载,并使用 UEFI 调用加载操作系统的其余部分。)

您可以看到 UEFI 与 ACPI 和 SMBIOS 并存。


以上是UEFI会取代SMBIOS和ACPI等标准吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>