不确定这个问题是应该放在这里还是放在 stack overflow 中,但我正在编写一个 UEFI 应用程序来启动自定义内核。我可以在 QEMU 中测试 UEFI 应用程序并使用 GDB 来调试和检查内存。我还可以做一些基本的事情,比如定位协议、打印和清除屏幕。
我的问题是,从 UEFI 应用程序启动内核的典型过程是什么? UEFI 应用程序是否需要读取文件系统来查找内核?
我在网上找到的大多数 UEFI 应用程序示例都是 hello world 应用程序。我发现了一个启动内核的简单示例,但我不明白 UEFI 应用程序如何找到内核。我也不明白内存复制。
https://devcodef1.com/news/1304006/custom-kernel-uefi-boot-with-qemu
我还发现了几个更复杂的例子,但我仍然有点困惑。 https://gitlab.com/bztsrc/bootboot/-/blob/master/x86_64-efi/bootboot.c https://github.com/KunYi/Simple-UEFI-Bootloader/blob/master/Simple_UEFI_Bootloader/src/Loader.c#L2771