【UEFI实战】Project Mu简介
原文链接:https://blog.csdn.net/jiangwei0512/article/details/104071942
什么是Project Mu
Project Mu是微软推出的一个项目,
官网是
https://microsoft.github.io/mu/
github
https://github.com/microsoft/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等的基础实现以及编译工具。
GitHub - microsoft/mu_plus: Microsoft Core UEFI Value
这个仓库包含了跟硬件相关的模块,且只依赖于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对它们的依赖关系做了严格的规定:

最终开源的代码应该是这样的:

或者这样的:

Project Mu is a modular adaptation of TianoCore's edk2 tuned for
building modern devices using a scalable, maintainable, and reusable pattern.
Mu is built around the idea that shipping
and maintaining a UEFI product is an ongoing collaboration between numerous partners.
For too long, the industry has built products
using a "forking" model combined with copy/paste/rename and with each new product,
the maintenance burden grows to such a level that updates are near impossible due to cost and risk.
Project Mu also tries to address the complex business relationships
and legal challenges facing partners today.
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 originated from building modern Windows PCs
but its patterns and design allow it to be scaled down or up for whatever the final product's intent.
IoT, Server, PC, or any other form factor should be able to leverage the content.
##Primary Goals
Initially, this project will focus on two central goals.
##Share
We will share our active code tree to both solicit feedback and entice partners to collaborate.
Project Mu is an active project.
This is not a side project, mirror, clone, or example.
This is the same code used today on many of Microsoft's 1st party devices
and it will be kept current because it must be to continue to enable shipping products.

浙公网安备 33010602011771号