Google 的 LinuxBoot 和 coreboot
核心观点与项目背景
Google 发起了 LinuxBoot 项目(2017年1月),旨在将 Linux 内核和 u-root initramfs 部署到 FLASH 中,减少和替换传统 UEFI 固件。该项目已在 Google 大规模部署,成为未来服务器和 Chromebook 的参考实现(PoR),并在其他超大规模提供商和公司中得到应用。Facebook 与 Intel 合作的核心boot 项目也在多个芯片平台上展示,Google 将其列为所有类型未来系统的 PoR。
LinuxBoot 的设计与优势
LinuxBoot 通过 UEFI 架构实现,减少和替换了大量 UEFI 驱动程序,简化了启动过程。其架构包括 UEFI 外壳、调度员、Boot 经理、内核等组件,通过 U-root 用户空间实现启动。LinuxBoot 已在航空航天、云和制造领域部署,兼容 x86 和 ARM 架构,允许使用相同的二进制文件在英特尔和 AMD 平台上运行。
coreboot 的历史与优势
coreboot(原 LinuxBIOS)始于 1999 年,经过多年发展,已成为 Chromebook 的标准固件。其设计理念是尽可能简化,让 Linux 作为 BIOS 运行。核心优势包括:
- 安全性:开放源代码,由众多高技能开发者维护,采用静态链接,经过 20 年社区硬化。
- 质量:代码库紧凑,90% 的代码在所有电路板上通用,实现“修复一个,修复所有”。
- 效率:每个提交的代码需通过 252 个主板的完整构建,确保跨平台兼容性。
Google 的 coreboot 路径
Google 通过 coreboot 移除了 122 个 UEFI 驱动程序,释放了 10 MiB 存储空间,减少了固件复杂性,提升了安全性和启动速度。核心优势包括:
- 代码重用:跨 NPI 平台通用代码约 50%,所有架构通用代码约 90%。
- 安全性:对单一架构的安全性有更高信心,所有架构通用代码确保跨平台安全。
字节跳动的 coreboot 进化
字节跳动与 Google 并行发展 coreboot 项目,展示了其开放性和灵活性。核心优势包括:
- 开放性:大部分代码开源,与芯片组供应商合作,减少斑点限制性许可。
- 社区支持:社区可根据 CPU 供应商需求执行更多驱动程序重用。
研究结论与呼吁
LinuxBoot 最初是 UEFI 项目,但推动了向 coreboot 的转变。Google 和字节跳动等公司已成功采用 coreboot,减少了对 UEFI 的依赖。未来,coreboot 可用于基于英特尔至强可扩展的 OCP DeltaLake 服务器等平台。呼吁更多组织采用 open source firmware(OSF),推动开放系统固件的发展。