微軟開源 Surface 裝置和 Hyper-V 的 UEFI 核心
Project Mu 的目標是讓開發者更容易快速建立和頻繁更新他們裝置的韌體,使裝置能夠採用“韌體即服務 (FaaS)”的演進模型。微軟表示, Project Mu 包含的程式碼與微軟 Surface 和 Hyper-V 等多款產品中使用的程式碼相同 。
Project Mu 基於 TianoCore 的 edk2 ,這是一個用於 統一可擴充套件韌體介面 (UEFI) 和平臺初始化 (PI) 規範的跨平臺韌體開發環境。微軟在 Surface 上採用了該規範。在為 Surface 開發 FaaS 的過程中,微軟發現 TianoCore 沒有進行優化以支援跨多個產品線的快速更新週期。於是,他們開始在 Tianocore 上建立了 Project Mu。
Project Mu 針對基於 Windows 的現代 pc 提供了大量 UEFI 特性。 它也演示了有效建立可擴充套件和耐用韌體的程式碼結構和開發過程。
根據微軟的說法,Project Mu 是高度模組化的。儘管它是為 Windows pc 而生的,但它可以針對任何型別的裝置擴大或縮小其規模,包括物聯網、伺服器和其他形式的裝置。Project Mu 帶來的新特性包括螢幕鍵盤、UEFI 設定的安全管理、高效能引導等。微軟也藉此機會刪除了不必要的遺留程式碼。此做法可以減少潛在的攻擊面,提高安全性。
除了為現代裝置調整 TianoCore,微軟還希望 Project Mu 在運輸和維護 UEFI 產品時能促進行業轉變:
很長一段時間以來,該行業一直使用與複製 / 貼上 / 重新命名相結合的“分叉”模型來構建產品。每出現一個新產品,維護的負擔都會增加一些,最後甚至會因成本和風險等因素,使得產品幾乎不可能再進行更新。
為了讓儘可能多的合作伙伴能夠採用這個框架,微軟設計了 Project Mu,這樣它就可以與任何閉源以及合作伙伴裝置所需的專有資產共存。微軟表示,得益於 Project Mu 對策分散式系統構建及其模組化設計,這是可能的。實際上,Project Mu 是由 許多不同的儲存庫組成的,這些儲存庫按功能、合作伙伴、許可和依賴關係進行組織 :
- Mu Basecore ,提供了專案的基礎,包括部分構建系統、處理 UEFI 和 ACPI 規範的 API 層等。
- Mu Common Plus ,在 Mu Basecore 上提供了許多可選的包。
- Mu Tiano Plus ,包含了最初來自 TianoCore 的模組。
要開始使用 Project Mu,請檢視它的 GitHub 儲存庫 ,並確保查看了 貢獻指南 。