加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

字节跳动首发云固件,成功实现服务器LinuxBoot产品化落地 | Q推荐

发布时间:2023-01-05 05:32:02 所属栏目:Linux 来源:网络
导读:
9 月 15 日,字节跳动宣布开发出第一代云固件 (Cloud Firmware)。
该云固件引入 LinuxBoot,并顺利投入业务应用,是全球第一个在服务器中产品化 LinuxBoot 的固件方案。
本文将和大家分享

linux系统框图_系统可靠性模型框图_ubuntu系统与linux系统

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 厂商整合后再给到系统厂商同步开发;云固件的合作方式是以字节为中心,系统代码和芯片厂商、系统厂商同源;显然,云固件的合作方式能更快速迭代同步芯片和系统平台问题。

ubuntu系统与linux系统_系统可靠性模型框图_linux系统框图

2 寻找适合服务器固件的 Bootloader

在服务器固件领域,目前可行的固件方案有 UEFI/Tiano,Min Platform, LinuxBoot, Coreboot, 生态比较成熟正在被采用的是 UEFI,但是其在社区活跃度、启动速度、开发难易度上都存在问题;Min Platform、LinuxBoot,、CoreBoot 均为近几年业界为解决 UEFI 缺点推出的固件方案,LinuxBoot、CoreBoot 直接引入了 Linux 生态,特点尤为突出,但是生态上有待共建。

通过收集比较适合服务器固件的各种 Bootloader 状态,我们得出以下结论:

ubuntu系统与linux系统_linux系统框图_系统可靠性模型框图

固件Boot 基本流程图:

系统可靠性模型框图_linux系统框图_ubuntu系统与linux系统

3 落地 LinuxBoot,构建简单易用的新固件生态路线选择

Linux 是当下最活跃的技术社区之一,字节跳动 STE 团队有不少 Linux 人才,也开发了稳定可靠的 veLinux 操作系统。

能否将 Linux 下沉到固件,利用 Linux 良好的生态来快速解决固件问题?LinuxBoot 正好符合我们的想法。

固件的芯片和平台部分,我们决定用 CoreBoot/U-Boot (Universal Boot Loader) 完全替换掉 UEFI/Tiano。这样可以直接打通服务器和各自板卡、嵌入式的固件生态,人力也可以灵活复用。

固件方案的改造推进,离不开生态以及各厂商的支持。根据目前固件生态情况,我们制定了以下路线图:

系统可靠性模型框图_ubuntu系统与linux系统_linux系统框图

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:

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!