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仓库,并确保查看了贡献指南。
评论