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