微软开源 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设置的安全管理、高性能引导等。微软也借此机会删除了不必要的遗留代码。此做法可以减少潜在的攻击面,提高安全性。

微软开源 Surface 设备和 Hyper-V 的 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存储库,并确保查看了贡献指南