我对 PC 固件编程很感兴趣,我只是在研究 UEFI 规范。令我惊讶的是,它似乎是嵌入在固件中的整个操作系统的规范。您甚至可以编写直接使用 UEFI 引导服务运行的 UEFI“应用程序”,而无需任何其他操作系统。
我找到了一些博客文章,其中展示了如何创建“你好,世界!”可以在 UEFI 预引导环境中运行的应用程序。这……很有趣,同时也很奇怪。我将在常规操作系统上运行我的“Hello, world”程序,谢谢。
UEFI 应用程序实际上适合哪些用例?花式启动配置屏幕?是否有任何“真正的”商用 PC 固件使用 UEFI 应用程序来实现不仅仅是引导加载程序和引导配置实用程序?
最佳答案
任何不是 PEI/DXE/SMM 核心或驱动程序的东西都是一个应用程序,所以任何“真正的”PC 都有它们,因为 BIOS 设置实际上是一个 UEFI 应用程序。一些供应商包括各种其他应用程序,如固件更新程序、诊断和故障排除实用程序等。 UEFI 2.4 可以添加您自己的应用程序,其中包含正确填充的 BootXXXX/KeyXXXX 变量对,然后通过在 POST 期间按组合键来运行它。
大多数用 C 编写的控制台应用程序可以使用 StdLib package 编译为 UEFI 应用程序。当前EFI Development Kit然后在 UEFI shell 中运行。
有用的 UEFI 应用程序(当然,除了引导加载程序、shell 和 Linux 内核之外)的主要示例是 Intel ME System Tools , Read Universal , Python 2.7还有很多。
最终,当传统引导不再可用时,所有当前有用的 DOS 实用程序必须要么成为 UEFI 应用程序,要么消失。
关于firmware - UEFI "applications"实际用于什么类型的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825927/