变天了!中国有了自己的BIOS

电子发烧友网报道(文/黄山明)BIOS(Basic Input/Output System)作为计算机启动和运行过程中至关重要的固件,可以被认为是计算机启动的“基石”,它在计算机硬件和操作系统之间起到桥梁作用。

而在过去的二十年更成熟的UEFI(Unified Extensible Firmware Interface)替代了传统的BIOS,但随着时间流逝,UEFI的诸多问题逐渐显现。近年来,业内呼吁推出全新的BIOS标准。在此背景下,近期全球计算联盟(GCC)发布了团体标准《统一基本输入输出系统(UBIOS)基础架构规范》(T/GCC 3007-2025)。至此,中国终于拥有了第一个完整、标准化、可扩展的国产固件体系标准。

从插线板到UBIOS,计算机固件的世纪进化之路

1946年,计算机被刚发明之时,最初的程序主要是通过物理插线板或开关手动设置的,每次更换程序都要重新接线。而最初的几十年,计算机也没有操作系统,用户需要手动输入机器指令。

以ENIAC这台现代计算机的鼻祖为例,由于没有操作系统,每次计算都要人工设置初始参数,电子管来实现运算,计算完成后,结果会通过机器上的指示灯或打印机输出,无法像现在这样直接存储到硬盘。

这就导致这台计算机的整机重约30吨,占地167平方米,包含1.8万个电子管、7万个电阻和1万个电容,是当时体积最庞大的电子设备。

直到1975年,IBM推出了BIOS,才真正让计算机有了引导程序,或者说有了BIOS才能让计算机真正的“开机”了。但BIOS由于技术较老,启动速度慢,对硬盘分区大小有限制,早期更是最多只能使用2TB,限制了计算机的发展。

因此到了1998年,Intel为了解决传统BIOS的技术局限,启动了一个名为“Intel Boot Initiative”的项目,旨在开发全新的固件接口标准,并在2000年发布了EFI 1.0版本,最初只为Intel的安腾(Itanium)处理器设计,但市场反响有限。

后来到2005年,Intel将EFI规范移交给新成立的UEFI 论坛(Unified EFI Forum),该论坛由AMD、微软、苹果、惠普等11家行业巨头共同组成。为体现跨平台统一性,EFI正式更名为UEFI(Unified Extensible Firmware Interface)。更名后,UEFI被定位为跨架构标准(可以支持x86、ARM、RISC-V等),突破了单一厂商限制。

现代计算机普遍采用 UEFI,它功能更强大、界面更友好、支持更大硬盘、更快启动,并具备网络、图形、安全启动等高级特性。当然,由于习惯,人们通常也会讲UEFI固件称为“BIOS”。

但是二十年过去,UEFI的局限逐渐显现,例如作为开发UEFI固件基础框架的TianoCore,为了兼容各种硬件,积累了大量适配不同平台的代码和模块,导致整体代码量达到数百万行,异常臃肿,同时效率低、模块耦合性高、不适合异构计算和Chiplet等等。

尤其是UEFI的设计初衷本身是服务PC和服务器,其架构相对庞大,对资源受限的嵌入式设备,例如物联网设备、小型工控机而言,存在过度设计的问题,占用了过多的内存和存储资源,不如那些轻量级固件高效。

并且UEFI自设计起便根植于Intel与Microsoft主导的生态之中,尽管后来ARM、RISC-V乃至国产的LoongArch都已经加入到这一标准,但仍然显得较为生涩。过去在全球化的背景下,这种表现无可厚非,但在如今全面要求自主可控的趋势下,UEFI成为国产替代中的一座“大山”。

近期,由GCC主导的团体标准《统一基本输入输出系统(UBIOS)接口规范》,这一标准的确立,标志着中国终于拥有了第一个完整、标准化、可扩展的国产固件体系标准,为基础输入输出系统构建提供标准化框架,提升系统兼容性与稳定性。

中国自己的BIOS

UBIOS标准的起草单位包括中国电子技术标准化研究院、华为等,与UEFI不同的是,UBIOS针对未来异构计算、Chiplet等先进芯片技术的发展趋势,进行了一次从底层理念出发的重构。

近年来,随着芯片设计从单一大Die转向多Chiplet和异构集成,现代SoC包含大量功能IP模块,有些是“死IP”,即无固件,依赖CPU和BIOS配置的IP,有些是“活IP”,也就是那些自带MCU和固件,可自主运行的IP。

传统BIOS/UEFI对死IP需逐个填寄存器驱动,导致验证周期长、接口不统一、协同效率低;而各IP固件之间及与BIOS的通信也缺乏标准,多依赖低效的Mailbox机制。

UBIOS在设计之初便面向这一趋势,解决了三个核心问题,一是为各类IP提供一致的固件开发与加载框架;二是定义IP固件之间、IP与主固件之间的高效、可靠通信通道;三是支持IP在集成前独立验证,缩短SoC整体开发周期,增强系统自洽性与可维护性。

简而言之,UBIOS通过固件层面的统一架构与标准化通信,有效支撑了Chiplet时代异构IP的高效协同与快速集成。

并且UBIOS定义了Call ID Service(CIS)和Notify ID Information(NII)接口,将功能抽象为“服务”,组件间通过Message ID交互,而非直接依赖硬件寄存器操作。也就是说,UBIOS将硬件地址的硬编码变成了功能号码的软编码,接口一旦标准化,那么硬件想怎么换就怎么换。

打个比方,就好像把“功能”变成像端口号一样标准化的数字,开发者只要知道“0x1203”就能调用网络协议栈,而不用关心它是Intel网卡、Realtek小芯片,还是BMC里的独立MCU实现的。

UBIOS还采用虚拟总线承载,UVB支持多种物理实现(如PCIe、USB),通过UVB over X协议屏蔽底层差异,实现跨平台兼容。这样就能让固件团队不再为“PCIe版”“SMBus版”各维护一份代码。并且支持热插拔零成本,卡插进去,UVB自动分配节点号,OS通过标准ID立即找到服务。哪天要加 MACsec、要加TEE通道,只改UVB传输层,应用层纹丝不动。

并且相比UEFI,UBIOS原生支持ARM、RISC-V及国产LoongArch架构,提供标准化HAL,减少对x86/ACPI的依赖。同时在Secure Boot基础上,新增TEE集成和动态密钥管理,支持国密算法,防御供应链攻击。

也可以不再强制依赖 ACPI、GPT、微软签名等 UEFI 生态组件,可根据国产操作系统(如 openEuler、麒麟、统信 UOS)需求灵活定制启动流程和安全策略。

与此同时,UBIOS还通过UEFI Payload兼容现有UEFI应用,利用UEFI2UBIOS Thunk转换层实现旧固件无缝迁移,降低过渡成本。

总结

UBIOS的出现,标志着中国在基础软件底层 实现了从跟随到引领的关键跨越。它不仅解决了UEFI在异构计算、安全可控、架构僵化等方面的瓶颈,更构建了一个 开放、自主、面向未来的国产固件生态基座,为国产芯片、操作系统、整机厂商提供了统一的底层支撑,是实现信息技术全栈自主可控的重要一环。

500

声明:本文由电子发烧友原创

站务

全部专栏