Project Muは、デバイスファームウェアの短期間での開発と頻繁なアップデートを可能にし、デバイスへの"ファームウェア・アズ・ア・サービス(FaaS)"進化モデルの適用を実現することを目的とする。Microsoftによると、Project Muには、Microsoft SurfaceやHyper-Vなど、いくつかの製品で利用されているものと同じコードが含まれている。
Project Muは、MicrosoftがSurfaceで採用したUEFI(Unified Extensible Firmware Interface)およびPlatform Initialization(PI)仕様のための、TianoCoreのedk2ベースでクロスプラットフォームなファームウェア開発環境である。SurfaceのFaaSを開発していたMicrosoftは、そのプロセスの中で、TianoCoreが複数の製品を対象とした短期間のアップデートサイクルには不向きであることに気付いた。そのため同社は、TianoCore上にProject Muを構築することにしたのだ。
Project Muには、最新のWinodwsベースPCを対象とした、さまざまなUEFI機能が含まれています。同時にそれは、スケーラブルでサービス性のよいファームウェアの効率的な開発のための、コード構造と開発プロセスのデモンストレーションでもあります。
Microsoftによると、Project Muは高度にモジュール化されているため、Windows PCを起源としてながらも、IoTやサーバなど、その他のフォームファクタにも自由にスケールアップないしスケールダウンすることが可能である。Project Muが新たに実現した機能としては、オンスクリーンキーボード、UEFI設定のセキュアな管理、ハイパフォーマンスな起動などがある。Microsoftはさらに不要なレガシコードの除去も行ったため、攻撃面の削減によるセキュリティ向上も実現されている。
最新デバイス用にTianoCoreをチューニングすると同時に、Microsoftは、UEFI製品の出荷とメンテナンスという面において、Project Muが業界のシフトを促進することも期待している。
あまりにも長きにわたって、この業界は、コピー/ペースト/リネームを組み合わせた"フォーク"モデルを使った製品開発を続けてきました。その結果として、どの新製品もメンテナンスの重い荷物を抱え込み、コストやリスクのためにアップデートがほぼ不可能になるようなレベルになっているのです。
できる限り多くのパートナにこのフレームワークを使ってもらうためにMicrosoftは、Project Muを、パートナのデバイスに必要な、どのクローズドソースのプロプライエタリな資産とも共存できるように設計した。これを実現したのは、Microsoftによれば、Project Muの分散ビルドシステムとモジュール化設計である。実際にProject Muは、関数やパートナ、ライセンス、依存関係によって組織された、さまざまなリポジトリから構成されている。
-
Mu Basecore – ビルドシステムやAPIレイヤへのアクセス、UEFI仕様やACPI仕様など、プロジェクトの基盤を提供する。
-
Mu Common Plus – Mu Basecore上に多数のオプションパッケージを提供する。
-
Mu Tiano Plus – TianoCoreをオリジナルソースとするモジュールが含まれている。
Project Muを使用するには、まずGitHubリポジトリを確認した上で、コントリビューションガイドラインを必ず読んで頂きたい。