我正在考虑开发一个简单的(开始)UEFI 引导加载程序来加载 ELF 映像,并且想知道是否有人有一个很好的入口点进入可能任何现有的项目,或者我可以用来开始使用的示例。
此外,我想知道是否有人在让虚拟盒运行 EFI 应用程序方面有任何经验。我已经设置了一个带有 EFI 主板的 VM,但可以创建一个 EFI 系统分区以供其加载(不使用操作系统),我所能实现的只是 UEFI 命令行。
我正在考虑开发一个简单的(开始)UEFI 引导加载程序来加载 ELF 映像,并且想知道是否有人有一个很好的入口点进入可能任何现有的项目,或者我可以用来开始使用的示例。
此外,我想知道是否有人在让虚拟盒运行 EFI 应用程序方面有任何经验。我已经设置了一个带有 EFI 主板的 VM,但可以创建一个 EFI 系统分区以供其加载(不使用操作系统),我所能实现的只是 UEFI 命令行。
您可以尝试查看GRUB或elilo源代码。这些也很好,因为它们支持加载 ELF 图像。您可能还会查看EDK2,那里有很多好的代码,并且很容易用它构建 EFI 可执行映像。
在引用 UEFI 时,我也喜欢使用Phoenix 的 wiki。我发现引导服务条目特别有用。
希望这至少有一点帮助!
我最近也对引导加载程序感兴趣。我还是这个领域的新手,但我发现了这个有趣的分步教程来编写“Hello World”引导加载程序。希望它能为您或其他有相同问题的人提供开发引导加载程序的起点。
可以通过 grub-mkimage 在 UEFI 上安装 GRUB。众所周知,ELF 二进制文件同样被伪装成符合 UEFI 的 PE32+ 要求。如果某些 C 开发人员将按照https://www.kernel.org/doc/Documentation/efi-stub.txt所做的那样重构代码,然后将 mkimage 的代码概括为一个单独的工具,以便在没有 PE32+ 内核加载程序的情况下使用多引导程序每个操作系统...
想象一下
ld -b input-format -o <output>.efi --oformat=output-format objfile ...