Microsoft has a new open source project — Project Mu. This is the company's open-source release of the Unified Extensible Firmware Interface (UEFI) core which is currently used by Surface devices and Hyper-V.
With the project, Microsoft hopes to make it easier to build scalable and serviceable firmware, and it embraces the idea of Firmware as a Service (FaaS). This allows for fast and efficient updating of firmware after release, with both security patches and performance-enhancing updates.
FaaS is something that Microsoft has already enabled on Surface, but the company realized that TianoCore – the existing open-source implementation of UEFI — was not optimized for rapid servicing. This is where Project Mu can help, the company says.
Over on GitHub, Microsoft offers the following description of 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.
In a blog post introducing Project Mu, the Microsoft Devices Team shares details of the features of the project:
- A code structure & development process optimized for Firmware as a Service
- An on-screen keyboard
- Secure management of UEFI settings
- Improved security by removing unnecessary legacy code, a practice known as attack surface reduction
- High-performance boot
- Modern BIOS menu examples
- Numerous tests & tools to analyze and optimize UEFI quality
You will find the Project Mu documentation and code on GitHub.