什么是Project Mu
Project Mu是微软推出的一个项目,官网是
https://microsoft.github.io/mu/
Project Mu简单来说就是一套edk2基础上的UEF固件,但是具有自己的特点,如图所示:
Project Mu原本是用在微软自己的PC设备(比如Surface)上的,但是也可以在上到服务器下到嵌入式设备上。
代码说明
Project Mu的代码分布在不同的仓库中,关于这一点有如下的说明:
To build most products, it often requires both closed-source, proprietary assets as well as open-source and industry-standard code. The distributed build system and multi-repository design allow product teams to keep code separate and connected to their original source while respecting legal and business boundaries.
下面介绍几个Project Mu最重要的仓库:
https://github.com/Microsoft/mu_basecore
这个是Project Mu的主仓库,包含的是UEFI/ACPI/PI等的基础实现以及编译工具。
https://github.com/Microsoft/mu_plus
这个仓库包含了跟硬件相关的模块,且只依赖于Project Mu的主仓库,它全部有Project Mu提供。
https://github.com/Microsoft/mu_tiano_plus
这个仓库包含TianoCore的一些通用功能。
总的来说,上述的代码包含了以下的种类:
- TianoCore EDK2 UEFI standard-based code
- Value-add code from TianoCore
- Silicon vendor hardware initialization code
- Silicon vendor value-add code
- Independent BIOS Vendor code
- ODM/OEM customization code
- OS firmware support code
- Legacy BIOS compatibility code
- Board-specific code
- etc.
由于这些代码在不同的仓库,由不同的人员维护,为了保持代码的兼容性和稳定性,Project Mu对它们的依赖关系做了严格的规定:
最终开源的代码应该是这样的:
或者这样的:
代码使用
to be continued...