作者: 浪潮信息技术研发部 吴海波
9 月 15 日,字节跳动宣布全球首批基于LinuxBoot云固件的x86服务器实现批量化上线运行【1】。该产品固件由字节跳动系统技术与工程团队(STE团队)、浪潮信息技术研发团队以及Intel联合开发实现。
产品采用UEFI Minplatform(Minimum Platform的缩写)进行芯片初始化和最小化的平台初始化功能,将其它大部分传统UEFI固件初始化的流程代码移植到LinuxBoot模块中进行实现。通过精简UEFI 功能模块,在底层固件模块中引入Linux软件生态,面向云平台原生需求开发云固件解决方案,使得服务器系统固件更易于开发和维护。
将Linux生态引入到系统固件中是目前开源固件技术发展的一种趋势,本文简单介绍了浪潮服务器在开源系统固件方面的创新实践。
在服务器领域,经常会听到“固件”这个名词,什么是固件呢?
“固件”就是存储在EEPROM或者FLASH中的程序。它是在电子硬件系统最基础最底层的软件,在系统上电后,首先要执行的程序就是固件。固件负责完成硬件的初始化,让电子设备系统处于一个正常的状态,然后才能让上层的操作系统或者应用软件正常使用。
对于服务器领域,BIOS是服务器最重要的固件,BIOS负责完成CPU、内存和外设的初始化,将硬件系统的抽象信息报告给操作系统,操作系统才能正常使用硬件。
目前服务器的BIOS均采用UEFI/Tiano的方案[2],但是随着目前云服务和数据中心的快速发展,UEFI BIOS也逐渐显露了一些问题:
(1)随着技术的发展,UEFI越来越复杂,门槛高,在UEFI专业领域的开发人员相比其他软件开发而言非常稀少。
(2)目前大多都是服务器厂商在购买BIOS软件厂商的UEFI BIOS代码基础上进行增强开发。 不同BIOS软件厂商提供代码风格和架构差别很大,一个服务器厂商的UEFI BIOS开发人员需要熟悉多套代码;另外,UEFI BIOS代码结构和内容有时还会随着服务器CPU的更新升级发生较大变动;这些都增加了BIOS固件的开发难度。
(3)由于UEFI BIOS固件中包含了服务器厂商和IBV(独立BIOS)厂商的知识产权,所以大部分BIOS代码都是闭源的,通过二进制的形式分发给服务器厂商使用。闭源会带来三方面的问题:i) 如果BIOS固件出现问题,只能让厂商来解决,这可能延长故障处理时间。ii) 由于代码是闭源的,对客户而言也隐藏着一些安全风险。Iii) 代码闭源,也将导致用户难以增添定制化功能,无法满足当前云环境下的快速迭代更新的需求。
综上所述,目前UEFI生态环境面临着开发人员短缺,代码不够开放,开发难度大,隐藏着安全风险等问题。
为解决当前UEFI BIOS固件的问题,尤其是针对当前云环境下的应用,目前开源社区提出了多种优化解决方案,包括Minplatform[3,4],CoreBoot[5]和LinuxBoot[6]等;主要是希望通过引入开源的方式来解决和优化目前UEFI BIOS固件遇到的问题。下面分别简单介绍下这些方案的内容。
Minplatform指Mininum Platform, 是Intel 提出的对目前UEFI固件的开源优化解决方案。如下图1所示,Minplatform定义了平台启动的多个BootStage,通过BootStage的配置实现了UEFI BIOS开发过程中依据不同需求选择配置相应的功能模块实现完整UEFI BIOS的最终解决方案。

图1 Minplaform定义的多个BootStage
在具体的实现上,如图2所示,Minplatform是依赖于UEFI Tiano EDK2[7]的开源代码,以搭积木的方式逐渐添加系统固件的功能,最终实现完整的BIOS固件。Minplatfom相比当前全功能的UEFI BIOS而言,先是一个做减法的操作,能快速启动。它定义了UEFI BIOS的最小平台代码;然后才做加法,根据不同需求来增加功能,继而实现较完整的UEFI BIOS。通过这种方式有效的减少了UEFI固件开发难度,增加功能代码的复用,是对当前UEFI BIOS固件开发的一种优化方案。

图2 MinPlatform实现
由于Minplatform是基于UEFI Tiano EDK2的开源实现,从BIOS代码厂商那购买UEFI BIOS,服务器厂商可以直接将功能代码做简单移植就可以作为Minplatform。这种方案对目前服务器厂商而言影响最小,因为已经积累了丰富的UEFI开发经验。
CoreBoot的前身是LinuxBios,是Ron Minnich于上世纪发起的项目,一种Linux代码风格的开源固件解决方案,跟UEFI固件架构完全不同。CoreBoot的目标是做最小的操作来完成硬件功能初始化,尽快的启动到操作系统中。

图3 CoreBoot的发展
UEFI的平台启动初始化流程为SEC->PEI->DXE->BDS->TLS->RT这几个阶段,其中SEC是指安全验证阶段,PEI是指EFI前期初始化阶段,DXE是驱动执行环境阶段,BDS是指启动设备选择阶段,TSL是指操作系统加载前期阶段,RT是指运行时阶段。
而CoreBoot将启动流程分为bootblock->romstage->ramstage->payload这几个主要阶段, 如下图4所示。其中booblock是汇编编写的,主要为C运行环境做准备;romstage阶段主要是来初始化内存和一些早期初始化操作;ramstage阶段主要执行系统设备的初始化,比如pcie初始化,创建ACPI表等;到了payload阶段CoreBoot的初始化操作实际上已经完成,payload可以作为最终的Bootloader来加载操作系统。

图4 CoreBoot平台初始化流程
相比UEFI架构的代码,CoreBoot代码跟Linux风格类似,完全开源, 它结合CPU厂商的芯片初始化二进制包(FSP/ATF/AGASA等)一起使用,来完成封闭的芯片初始化功能,同时可以集成Tianocore、LinuxBoot等各种payload,来满足各种需求。
目前CoreBoot主要在Chromebook等PC机器上应用,由于CoreBoot的开源以及Linux风格的代码架构的原因, 以及在Linux领域的人才优势,也在推进支持使用CoreBoot作为服务器的UEFI BIOS的替代选择。
LinuxBoot来源于NERF(Non-Extensible Reduced Firmware)项目,是用Linux作为固件的一部分的解决方案,它不是一个完整的固件方案,无法独立完成所有的硬件初始化功能,必须依赖于UEFI 、CoreBoot等完成CPU和内存初始化,然后使用Linux Kernel来完成外设初始化和启动操作系统的功能。

图5 LinuxBoot架构图
对于当前服务器固件解决方案UEFI BIOS而言,LinuxBoot主要是通过开源的Linux Kernel来取代UEFI DXE和BDS阶段的功能,比如通过Linux下的开源driver来取代UEFI下的设备驱动,用Linux完备的网络功能取代UEFI的。UEFI结合LinuxBoot可以减少UEFI代码和开发难度。
LinuxBoot已被 Linux 基金会接受。目前在服务器领域,它作为固件部分的方案得到了许多厂商的支持,但是这种方案要求有较强的Linux开发能力,否则难以享受LinuxBoot带来的优势。
虽然目前基于UEFI的BIOS系统固件还是绝对的主流,但是UEFI BIOS面临的闭源、安全和开发难问题也是无法回避的问题。尤其是对于具有大型数据中心的大型互联网服务提供商来说,如何将符合自己业务场景需求的功能添加到固件中,如何实现系统固件的快速开发和维护,从而减少因为固件维护导致的停机时间,如何保证固件代码的安全可靠, 如何具备系统固件开发能力和掌控能力,都需要考虑。
相比服务器厂商,大型互联网服务提供商,拥有大量的Linux方面的开发人才,所以希望引入LinuxBoot和CoreBoot这些基于Linux或类似的固件方案来增加在服务器固件上的技术掌控能力。另外通过开源的固件解决方案,也能够减少UEFI代码中隐藏的代码安全风险,加快服务器固件开发,减少服务器系统固件的维护时间。

图6 服务器固件 Bootloader各方案对比(引自字节跳动STE团队)
这也要求服务器厂商需要提前了解这些客户的需求,并与之深入合作来保持在未来固件发展中重要地位。在构建智慧时代的“新基建”-智算中心的过程中,浪潮秉承着开放标准、集约高效和普适普惠的理念,以稳健、实干的态度,积极主动地与用户、以及上下游合作伙伴一道,共同推动开放计算生态健康有序的发展。
感谢黄家明、吴安、叶毓睿等对本篇文章的贡献。
好文章,需要你的鼓励
随着员工自发使用生成式AI工具,CIO面临影子AI的挑战。报告显示43%的员工在个人设备上使用AI应用处理工作,25%在工作中使用未经批准的AI工具。专家建议通过六项策略管理影子AI:建立明确规则框架、持续监控和清单跟踪、加强数据保护和访问控制、明确风险承受度、营造透明信任文化、实施持续的角色化AI培训。目标是支持负责任的创新而非完全禁止。
哈佛、MIT联合研究揭示人类语言理解的神经机制,发现大脑通过"信息出口"将语言从核心系统传递至专业脑区实现深度理解。研究提出浅层与深层理解的区别,为人工智能发展提供重要启示,表明真正智能需要多系统协作而非单一优化。该发现可能改变我们对语言认知的理解。
英国正式推出DaRe2THINK数字平台,旨在简化NHS全科医生参与临床试验的流程。该平台由伯明翰大学和MHRA临床实践研究数据链开发,能够安全传输GP诊所与NHS试验研究人员之间的健康数据,减少医生的管理负担。平台利用NHS现有健康信息,安全筛查来自450多家诊所的1300万患者记录,并使用移动消息系统保持试验对象参与度,为传统上无法参与的人群开辟了研究机会。
腾讯混元等团队开发出革命性的AI视频生成自我评判系统PAVRM和训练方法PRFL,让AI能在创作过程中实时评估和改进视频质量,无需等到完成才反馈。该技术使视频动态表现提升56%,人体结构准确性提升21.5%,训练效率提升1.4倍,为AI视频生成质量带来质的飞跃。