首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UEFI会取代SMBIOS和ACPI等标准吗?

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

Stack Overflow用户
提问于 2021-03-13 00:36:21
回答 1查看 393关注 0票数 0

我一直在想,作为一个对操作系统背后发生的事情缺乏经验的开发人员,为什么固件会如此混乱。我试着至少理解这些片段的位置。UEFI是试图取代所有这些以前用于与固件交互的标准,还是将它们合并在一起?

EN

回答 1

Stack Overflow用户

发布于 2021-03-13 01:33:43

不是的。

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

创建UEFI的目的是为了标准化操作系统和固件之间的接口,以便引导操作系统。

在启动时,操作系统处于特殊的位置,需要与硬件对话才能加载其自身的其余部分,但它需要自身的其余部分(驱动程序)与硬件对话。

提供固件服务的目的是为操作系统提供与硬件对话的最小支持。

但是这些服务从来没有正确地标准化,它们诞生于约定和传统(例如,16位实模式BIOS接口和古老的C/H/S驱动器几何结构,具有各种方法来绕过磁盘大小限制,并且没有标准分区或其他明确的位置来放置超过1个扇区(512字节)的引导加载程序代码)。

UEFI使界面现代化。引用:

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

UEFI specifications的1.3节(目标)列出了UEFI的目标。

是一个标准化接口,用于将信息(以表和字节码的形式)从固件传递到操作系统。

有些硬件是不可发现的,操作系统只能通过包含大量存在测试和驱动程序来支持它。

但固件知道硬件,因为它是用一组由人设置的开关编译而成的,这些开关与硬件匹配。

ACPI是固件将此信息传递给操作系统的方式。实际的规范本身更加复杂,因为它包含一个完整的抽象名称空间,其中包含可执行的方法和各种概念。

但是想法很简单:通知操作系统有关硬件的信息。

确实与ACPI有部分重叠;它们是由不同组织设计的两个标准。

SMBIOS比ACPI或UEFI简单得多:它将自己限制为只向操作系统报告一组静态信息。

ACPI为OS提供管理硬件的信息,而SMBIOS规范主要提供人类可读的信息(例如,固件版本或设备安装在哪个物理PCI插槽中)。

请注意,SMBIOS中的SM表示系统管理,它与SMM (系统管理模式)中的SM冲突。

事实上,我错误地认为SMBIOS指的是在SMM中运行的固件部分(我猜这部分固件称为SMM)。

SMM基本上是一种事件驱动的机制,以对操作系统透明的方式回调固件。

此功能用于在软件中实现某些硬件功能(即,模拟它们,如传统的PS2支持或fTPM),以响应操作系统无法信任的关键事件(错误或过热故障),或出于管理目的而透明地欺骗操作系统(例如,重启、按键-视频-鼠标服务等)。

请记住,这些规范是由不同的人在不同的时间制定的。(但UEFI和ACPI目前维持在by the same organization。)

一旦一个标准被足够多的软件所采用(或者引入足够多的软件公司),那么它将永远存在。

你可能已经注意到了这张图片:

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

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66603762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档