开放系统固件 (OSF) 简介
什么是开放系统固件?
开放系统固件 (OSF) 是由 OCP 项目孵化委员会代表董伟、项目负责人 Anjaneya “Reddy” Chagam 和 Ryan O 'Leary 推动的项目。OSF 致力于创建一个开放、可重分配的固件平台,适用于计算、存储和网络服务器。
核心目标
OSF 的核心目标是确保固件满足以下三个关键要求:
- 可构建:存在一个顶级构建脚本,能够从上游项目下载源代码并构建固件。
- 可安装:固件可以通过开源软件或足够公开的文档进行更新。
- 可重新分配:固件与硬件购买无关,可以自由重新分发。
适用范围
- 适用于所有固件设计方法(如 OpenEDK II、coreboot、LinuxBoot 等)。
- 适用于所有架构(如 x86、Arm、Power 等)。
- 适用于计算/存储服务器和网络服务器。
- 适用于其他相关领域,如主机固件。
不适用范围
- 不适用于供应商添加额外功能(“价值增加”)。
- 不适用于生产环境中的使用内容规定。
- 不适用于其他 OCP 平台(除计算/存储/网络服务器外)。
- 不适用于设备固件和 BMC(BMC 属于 OCP 硬件管理项目)。
OSF 检查表
OSF 检查表的核心目标是确保固件满足可构建、可安装和可重新分配的要求。
可构建
- 构建和更新实用程序必须存在一个顶级构建脚本,能够获取所有 blob 和源代码。
- 该脚本可以调用其他脚本和实用程序执行主要功能。
- 脚本必须是开源或可再发行二进制文件,至少在 Linux 或 Windows 下本机运行。
可安装
- 开源软件必须存在以更新固件,或存在足够的公开文档以便编写此类软件。
- 例如:flashrom、fwupd、自我更新等。
- 注意:大多数 OCP 供应商的当前系统不允许用户刷新固件。
可重新分配
- 固件与硬件购买无关,可以自由重新分发。
- 例如,通过面向所有人的 GitHub 仓库。
- OSF 默认为开源,但在合理例外情况下(如“包含硅知识产权”),允许使用闭源项。
- 每个闭源项必须可重分发、包含在提交内容中,并具有合理的粒度。
- 建议但不要求每个可分离的固件组件(如 UEFI 驱动程序)都进行文档记录。
如何验证这些要求?
- 当前型号:OSF 提交包含辅助材料(固件映像、源代码、二进制 Blob、文档、工具等),上传至 GitHub 由 PL 审核。
- 测试制度:
- 引导到 Linux 操作系统(或任何符合 OSI 的操作系统)。
- OSF 社区定义测试计划和测试列表。
- 自我认证测试:提交者在提交过程中实施测试、运行测试并提供结果。
- 注意:此测试方案极其有限,建议最终用户执行额外的测试。
- 新的 OCP 计划(如 OSFCI)将提升 OSF 过程的未来迭代。
摘要
开放系统固件 (OSF) 的核心目标是确保固件满足可构建、可安装和可重新分配的要求。OCP 验收需要 OSF 供应商清单。OSF 默认为开源,但在合理例外情况下允许使用闭源项。
呼吁采取行动