With the release of Windows 10, Microsoft took a big step in the direction of Windows as a Service (WaaS). The firm stated that it would continuously update its operating system, which is a very different approach from the previous developmental model in which major OS updates would be released after every couple of years.
Today, the company has announced an open-source release of Project Mu, which takes firmware development in the same direction, that is Firmware as a Service (FaaS).
For those unaware, Unified Extensible Firmware Interface (UEFI) is a software which aids in booting up a system by providing services that an operating system can use. Similarly, TianoCore's EDK II is a platform that supports open-source development of UEFI.
While Microsoft initially utilized FaaS on its Surface line of products, it realized that TainoCore's implementation is not suitable for generic development across multiple different products and form factors. To solve this problem, it began work on Project Mu, which "demonstrates a code structure and development process for efficiently building scalable and serviceable firmware".
After improving the utilization of Project Mu in FaaS over the course of several iterations, the company has announced an open-source release. Project Mu offers the following advantages:
- 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.
Over on the project's GitHub page, Microsoft has also noted two primary goals of Project Mu. Firstly, it has emphasized that Project Mu isn't a side-project but is actually the same code that Microsoft uses in its own software. So it expects its partners to actively collaborate in its development for further improvements. Secondly, it wants to promote collaborative development so that its partners can build high quality products while keeping costs down.
The company has also stated that Project Mu is strongly related to TianoCore, but it is not a fork. Development on Project Mu will be based on TianoCore's latest stable release. Lastly, Microsoft has also noted that its open-source release is extremely modular, going on to say that:
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.
[...] The idea is lowering the entanglement of code, lowering the coupling, and allowing the product to pick and choose the code it needs. This means when building any given product, you don't need all the Project Mu code.