O projeto Mu visa tornar mais fácil para os desenvolvedores criarem rapidamente e atualizar frequentemente o firmware de seus dispositivos, permitindo que os dispositivos adotem um modelo de evolução "Firmware as a Service (FaaS)". O projeto Mu contém o mesmo código utilizado em vários produtos, incluindo o Microsoft Surface e o Hyper-V, diz a Microsoft.
O projeto Mu baseia-se no edk2 da TianoCore, um ambiente de desenvolvimento de firmware multiplataforma para as especificações UEFI (Unified Extensible Firmware Interface) e Initialization Platform (PI) que a Microsoft adotou para o Surface. No processo de desenvolvimento do FaaS para o Surface, a Microsoft descobriu que a TianoCore não estava otimizada para suportar ciclos rápidos de atualização em várias linhas de produtos. Assim, eles se propuseram a construir o Projeto Mu no topo da TianoCore.
O projeto Mu contribui com numerosos recursos de UEFI voltados para PCs modernos baseados no Windows. Ele também demonstra uma estrutura de código e processo de desenvolvimento para construir com eficiência o firmware escalável e que pode ser reparado.
De acordo com a Microsoft, o projeto Mu é altamente modular e, embora tenha nascido para PCs com Windows, pode ser ampliado ou reduzido para qualquer tipo de dispositivo, incluindo IoT, servidores e outras configurações. Os novos recursos trazidos pelo projeto Mu incluem um teclado na tela, gerenciamento seguro de configurações UEFI, inicialização de alto desempenho e outros. A Microsoft também aproveitou a oportunidade para se livrar do código legado desnecessário, que deve melhorar a segurança reduzindo a superfície de ataque disponível.
Além de sintonizar a TianoCore para dispositivos modernos, a Microsoft também espera que o projeto Mu promova uma mudança na indústria quando se tratar de enviar e manter produtos UEFI:
Por muito tempo a indústria construiu produtos usando um modelo "bifurcado" combinado com copiar/colar/renomear e com cada novo produto a carga de manutenção cresce a um nível tal que as atualizações são quase impossíveis devido ao custo e risco.
Para possibilitar que o maior número possível de parceiros adote a estrutura, a Microsoft projetou o Mu para que ele possa coexistir com quaisquer recursos proprietários de código fechado que os parceiros possam exigir para seus dispositivos. Isso é possível, segundo a Microsoft, pelo sistema de construção distribuído do projeto Mu e seu design modular. De fato, o projeto Mu é feito de vários repositórios diferentes, que são organizados por funções, parceiros, licenças e dependências:
- Mu Basecore, fornece as bases do projeto, incluindo partes do sistema de compilação, a camada da API abordando as especificações UEFI e ACPI, etc.
- Mu Common Plus, fornece vários pacotes opcionais sobre o Mu Basecore.
- Mu Tiano Plus, que inclui módulos originalmente disponibilizados pela TianoCore.
Para começar com o projeto Mu, dê uma olhada nos seus repositórios do GitHub e certifique-se de verificar as diretrizes de contribuição.