UEFI是BIOS的继任者。它为加载程序、虚拟机管理程序和其他低级应用程序提供早期引导环境。虽然它最初是特定于x86的,但已经在其他平台上采用,比如ARM。
其目标是为UEFI接口提供安全和高性能的包装器,并允许开发人员编写惯用的Rust代码。
UEFI(TOP DIRECTORY):定义标准的UEFI表/接口,目标是保持非离子化并安全地包装大多数接口。
EXTS:为常见模式提供实用功能的扩展。需要分配板条箱(启用分配可选功能或您自己的自定义分配器)。
此机箱使您可以轻松地开始使用UEFI构建简单的应用程序。但是,您应该了解一些限制:
全局记录器/分配器只能在每个二进制文件中设置一次。这在刚开始时很有用,但是如果您正在构建一个真实的操作系统,您将需要编写您自己的特定内核记录器和内存分配器。
为了支持高级特性,如高半内核和链接器脚本,您需要将内核构建为ELF二进制文件。
换句话说,使用这个机箱的最好方法是创建一个包装实际内核的小二进制文件,然后使用UEFI';方便的函数从磁盘加载和引导它。
这类似于Linux内核的EFI存根所做的事情:压缩内核是ELF二进制文件,它几乎不知道它是如何引导的,引导加载程序使用UEFI为它设置环境。
这个板条箱的文档是相当简单的,我们鼓励您参考UEFI规范以获取详细信息。
我们欢迎问题和拉请求!有关如何设置开发环境和如何添加新协议的说明,请查看CONTRIBUTING.md。
此存储库中的代码受Mozilla Public License 2许可。该许可允许您在专有程序中使用机箱,但对文件的任何修改都必须是开源的。