Microsoft has announced a new initiative called Project Mu which is an open-source release of Unified Extensible Firmware Interface (UEFI) core currently used by Surface devices and Hyper-V. Microsoft is currently using TianoCore? which is not optimized for rapid servicing.
With Project Mu, Microsoft hopes to make it easier to build scalable firmware and it embraces the idea of Firmware as a Service (FaaS).
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.
– Microsoft (on GitHub)
Microsoft also listed out 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
If you’re interested then you can head to Microsoft’s blog post to read more about the project or head to GitHub to check out the code and the documentation of the project.