微软开源 Surface 设备和 Hyper-V 的 UEFI 内核

阅读数:5031 2019 年 1 月 24 日 07:00

微软开源 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 存储库,并确保查看了贡献指南

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论