我正在开发一个简单的(开始)UEFI引导加载程序来加载ELF图像,并且想知道是否有人对任何现有项目有一个很好的切入点,或者我可以用来开始的示例用。
此外,我想知道是否有任何人有获得虚拟盒来运行EFI应用程序的经验。我已经设置了一个带有EFI主板的虚拟机,但是可以创建一个EFI系统分区,以便加载(不使用操作系统),我所能实现的就是UEFI命令行。
答案 0 :(得分:6)
您可以尝试查看GRUB或elilo源代码。这些也很好,因为它们支持加载ELF图像。您也可以查看EDK2,那里有很多优秀的代码,并且使用它构建EFI可执行映像很容易。
在引用UEFI时,我也想使用Phoenix's wiki。我发现boot services条目特别有用。
希望这至少有一点帮助!
答案 1 :(得分:1)
我最近也对引导程序感兴趣。我还是这个领域的新手,但我找到了this有趣的分步教程来编写一个" Hello World"引导程序。希望它能为您或其他任何人提供相同的问题作为开发引导程序的起点。
答案 2 :(得分:0)
通过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 ...