字节跳动首发云固件,成功实现服务器LinuxBoot产品化落地 | Q推荐
9 月 15 日,字节跳动宣布开发出第一代云固件 (Cloud Firmware)。
该云固件引入 LinuxBoot,并顺利投入业务应用,是全球第一个在服务器中产品化 LinuxBoot 的固件方案。
本文将和大家分享
9 月 15 日,字节跳动宣布开发出第一代云固件 (Cloud Firmware)。 该云固件引入 LinuxBoot,并顺利投入业务应用,是全球第一个在服务器中产品化 LinuxBoot 的固件方案。 本文将和大家分享字节跳动 STE 团队,在开发第一代云固件上,是如何思考和一一落地的。 1 服务器固件生态问题众多 固件是系统上最先启动的软件,其主要目的是初始化硬件,启动到操作系统。固件存在于各种电子设备中,小到手表,大到数据中心服务器,今天我们重点聊聊服务器的固件。 目前服务器均采用 UEFI/Tiano(uefi.org/tianocore.org) 方案。UEFI/Tiano 是开源的固件方案linux系统框图,代码繁重,社区活跃度低,这也使得几乎没有厂商,能基于 UEFI/Tiano 的开源方案直接产品化。 绝大部分系统厂商采用的是 BIOS 厂商的方案,固件工程师也大多从事主板适配、平台功能开发等工作。这使得众多功能 / 核心模块掌控在 BIOS 厂商手里,系统厂商和用户无法高效迅速地解决问题。 综上所述,目前固件生态存在的主要问题包括: 与 Linux 社区相比,UEFI 社区活跃度低,较难招聘到合适人才; 服务器固件与 SOC、板卡固件软件生态不同 (UEFI vs. Linux),人才无法灵活复用;3.UEFI 固件很多功能模块由 BIOS 厂商把控,线上问题无法快速解决; 使用方、芯片厂商和系统厂商无法保持代码同步,影响迭代和解决问题的速度。 下图为不同方案的合作模式:当前主流的合作模式为芯片厂商发布相关的芯片代码到 BIOS 厂商,BIOS 厂商整合后再给到系统厂商同步开发;云固件的合作方式是以字节为中心,系统代码和芯片厂商、系统厂商同源;显然,云固件的合作方式能更快速迭代同步芯片和系统平台问题。 2 寻找适合服务器固件的 Bootloader 在服务器固件领域,目前可行的固件方案有 UEFI/Tiano,Min Platform, LinuxBoot, Coreboot, 生态比较成熟正在被采用的是 UEFI,但是其在社区活跃度、启动速度、开发难易度上都存在问题;Min Platform、LinuxBoot,、CoreBoot 均为近几年业界为解决 UEFI 缺点推出的固件方案,LinuxBoot、CoreBoot 直接引入了 Linux 生态,特点尤为突出,但是生态上有待共建。 通过收集比较适合服务器固件的各种 Bootloader 状态,我们得出以下结论: 固件Boot 基本流程图: 3 落地 LinuxBoot,构建简单易用的新固件生态路线选择 Linux 是当下最活跃的技术社区之一,字节跳动 STE 团队有不少 Linux 人才,也开发了稳定可靠的 veLinux 操作系统。 能否将 Linux 下沉到固件,利用 Linux 良好的生态来快速解决固件问题?LinuxBoot 正好符合我们的想法。 固件的芯片和平台部分,我们决定用 CoreBoot/U-Boot (Universal Boot Loader) 完全替换掉 UEFI/Tiano。这样可以直接打通服务器和各自板卡、嵌入式的固件生态,人力也可以灵活复用。 固件方案的改造推进,离不开生态以及各厂商的支持。根据目前固件生态情况,我们制定了以下路线图: 1.云固件 1.0: 基于 Minimun Platform 和 LinuxBoot,精简传统固件方案,将一些功能移至生态更佳的 LinuxBoot 里实现;重点适配,迭代 LinuxBoot,使其达到产品化质量。 2.云固件 2.0: 基于 CoreBoot 和 LinuxBoot,与社区和厂商共同打造 CoreBoot 生态和环境,使 LinuxBoot 和 CoreBoot 均迭代到产品化程度。 3.云固件 3.0: 基于不同的 Platform 和架构迭代,使其适配于不同架构的平台。 开发方式 精简 UEFI 平台 (Minimum Platform) 开发: LinuxBoot 开发: 成果梳理 第一代云固件首批 200+ 服务器已顺利完成生产上线,并稳定支持了字节跳动部分业务的持续运行。 此外,我们和社区厂商也在紧密合作开发第二代云固件。目前 CoreBoot 已经完成开机,其他相关工作也在有序推进中。 云固件的顺利运行,同样离不开 Intel、浪潮的共建参与和支持,我们期待在后继开发中,继续推进技术创新合作,同时也期待更多有志之士、公司参与到整个生态的建设中来,携手打造简单易用的新固件生态。 参考资料: 1.UEFI: 2.Tiano: 3.LinuxBoot: 4.CoreBoot: 5.Minimum Platform: (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |