通常情况下,我们需要使用 EDK2 来进行 UEFI Shell Application 的开发。这次介绍的是一个用来开发 UEFI Shell Application的框架。项目地址如下:
https://github.com/VioletGiraffe/UEFI-Bootloader
从名字可以看出,作者的目标是用来开发BootLoader,类似的我们可以用来开发UEFI Shell Application。
相比EDK2,这种方法的优点主要是:
- 小巧简单。容量只有十几兆,编译起来非常快,另外方便我们研究具体的实现;
- 编译环境时 Visual Studio,方便我们阅读代码
具体使用方法是:
1.在 https://github.com/VioletGiraffe/UEFI-Bootloader 下载代码
2.在https://github.com/VioletGiraffe/UEFI-CPP-headers 下载需要的头文件
3.将2下载的内容解压到 UEFI-CPP-headers目录下

4.Visual Studio 打开bootloader.sln文件
5.这个项目作者使用 VS2017,所以需要修改一下 Platform Toolset 为你当前使用的编译器。这里我是用的是 VS2019,修改如下:

6.直接 Build即可生成 BootX64.efi
在WinHost 模拟环境中运行这个程序可以看到屏幕上输出了信息:

有兴趣的朋友可以直接去前面提到的项目主页或者在这里直接下载: