现在所有的启动固件启动过程本身无外乎三个步骤:

1、Rom Stage:在这个阶段没有内存,需要在ROM上运行代码。这时没有内存,没有C语言运行所需要的栈空间,开始往往是汇编语言,直接在ROM上运行。在找到临时空间(CAR)后,C语言登场。

2、Ram Stage:在经过ROM阶段的困难情况后,有了内存,可以进行初始化芯片组、CPU、主板等模块等核心模块。

3、Find something to boot stage:开始启动,找到启动设备。枚举启动设备,发现启动设备,并把启动设备之前需要依赖的节点打通,开始移交工作,将控制权交给Windows或Linux。

目前的启动固件有:BIOS、UEFI、coreboot、云原生固件

字节跳动提出的云原生固件Cloud Firmware 2.0是业内全球第一个落地的coreboot+Linuxboot的服务器固件解决方案产品。简单来讲coreboot Only缺乏服务器启动需要的一些重要必备功能,而这些功能不是短时间能够补上的。而LinuxBoot带来的Linux成熟的协议栈,可以补上这些短板,如网络启动、RedFish等;纯LinuxBoot则因为功能更不完备,需要芯片初始化、平台初始化和各种表的创建等基础功能。于是两者结合,提供一个最基础功能的全覆盖。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐