UEFI 笔记 001 —— 什么是 ACPI method
声明:个人笔记,概不负责
一句话
所谓 ACPI method 本质上就是 Callback 函数。是在 OS 主导下,OS 发起的,对 System Firmware 的调用。
类似在 Windows 上用 C 编写 Win32 应用,需要实现一堆 OS 要求的 Callback 函数。
ACPI method 的提供者 System Firmware ,事实上在 实现 OS 要求的 Callback 函数。
所不同的是,OS 调用 C 应用的是 native code ,而调用 System Firmware 的是 AML code.
System Firmware 本身是 native code ,为满足 OS 的目的,不得不提供 AML code
System Firmware 本身并不执行这些 AML 代码,只是在交割管理权给 OS 时,以“一片内存”的形式传递准备好的 AML code
OS 解释执行 AML 代码,由于 OS 理解 AML 所需资源,所以 OS 能把 AML code 中 对 hardware 的 调用,转成 native 调用。
啰嗦的话
可以想象最糟糕的情况是,对某个 device ,在 System Firmware 用 native code 实现一段逻辑,又在 AML code 中写了一份类似的逻辑,而在 OS 中的 driver 又又又用 native code 实现了一次。
在 OS 接管后,System Firmware 失去用 native code 控制的权力,它的残影只在它提供的 AML code 中存在。OS 以某种方式 平衡 ACPI Deivce AML code 与 OS Device Driver native code 互动。
有些系统 System Firmware 执念 native code 的权力,交接给 OS 后还不想放弃,所以系统变得复杂。有些系统 System Firmware 并不在乎,交割管理权给 OS 后,自己的 native code 权力随之放弃。在读了 ACPI 5.0(2011年)加入的 Hardware-Reduced ACPI 叙述之后,颇能体会 ACPI method 的本质。
ACPI spec 的演化,是 写 spec 的人解决问题时 觉得对 spec 不爽,自己把 spec 改造成需要的样子。
—— 2012 年,Windows 8 发布,基于 SoC 运行的 Windows 8 需要 ACPI 5.0
—— 2011 年,ACPI 5.0 发布,里面有一大堆 微软递交的更改。
Hardware-Reduced ACPI 可译作 —— 精简硬件 ACPI(借鉴 RISC 的翻译)
Windows 8 第一次开始支持 手机、平板系统,第一次开始支持 ARM 处理器。
[ACPI-old] https://uefi.org/acpi/specs
[Win-ACPI] https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/acpi-driver
[Win8-SOC] https://learn.microsoft.com/en-us/windows-hardware/drivers/bringup/windows-acpi-design-guide-for-soc-platforms
[Window8] https://en.wikipedia.org/wiki/Windows_8
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)