COREBOOT和SEABIOS有什么关系

COREBOOT和SEABIOS有什么关系

我有兴趣投资支持 libreboot 的硬件,并且我知道它是 coreboot 的一个分支,删除了固件 blob,但是我不明白 seabios 是什么。

我做了一些研究,但是找不到(我所理解的)有关seabios 在这一切中到底处于什么位置的信息。据解释,seabios 是一个有效负载,但是操作系统内核(例如 Linux)也可以作为“有效负载”。当我尝试调整 Chromebook 时,我在 qemu 和 Purism 的产品上看到过提到seabios,但据我了解;使用 coreboot 时不需要 seabios。

seabios 是处于较高级别(如术语“有效负载”所示)还是处于较低级别(如名称“seabios”本身所示)。

我猜它类似于 Linux 中的开源视频驱动程序堆栈,其中有 GPU 固件 > 内核驱动程序 > 用户空间驱动程序/API 层(如 mesa、SDL...),然后是应用程序。

据我了解,Coreboot/Libreboot是硬件初始化程序,Seabios是加载引导加载程序(GRUB或ISOLINUX)的程序,它从那里开始,但细节我仍然不清楚。

我全职使用 GNU/Linux 已有十多年了,但我的知识仅限于 systemd 和 GRUB 脚本。直到现在才研究过 libre BIOS/UEFI 替代方案。

在承诺购买硬件之前,我非常感谢对此进行澄清(尽管支持的硬件列表非常有限)!

答案1

我不知道您正在寻找什么样的复杂答案,这是我的简单但冗长且轶事的尝试:

消费者一直在使用IBM PC 克隆许久。它们有一个用于平台初始化的固件,称为 BIOS,它在某些时候被逆向工程,以便 IBM 以外的其他制造商可以开始生产兼容的机器。其他计算机系统使用不同的固件,例如安腾,其中开发了 EFI,后来成为采用 Intel 处理器 (TianoCore) 的 Mac 和 PC 的新标准。 Coreboot 最初被命名为 LinuxBIOS,它试图删除大部分或全部(如果可能的话)专有代码来启动 Linux 内核,这也是最初的目标。在某些时候,当时该项目的成员认为,支持除了加载 Linux 内核之外的机制会更灵活。用 Coreboot 替换计算机的原始固件似乎很困难,即使对于 Linux 用户来说也是如此,如果你成功了,你将只能启动 Linux。在 Coreboot 上运行 Windows 可能不是大多数人的想法,但它已经它的利基市场。一个更好的例子是更熟悉 BSD 的用户。当然还有更多:Minix、Haiku 等等。如果您想启动其中任何一个,您必须选择一个“有效负载”来提供这些操作系统所需的接口。

进一步阅读和材料:

我不是固件工程师,也不参与任何这些项目,也不参与任何项目。我只是一个拥有十多年 Linux 经验的人。

如果您想询问工程师,可以在 Reddit 上询问 MrChromebook 或在相应的邮件列表中询问。

答案2

普通 BIOS 的作用不仅仅是设置硬件,它还实现了大量可由 16 位实模式代码调用的函数,以执行各种低级操作并检索有关系统的低级信息。 BIOS 可以提供这种低级功能,因为您的 BIOS 设计水平非常低(毕竟它会初始化您的系统)并且必须非常熟悉您的平台(芯片组和其他硬件)。

例如,BIOS 提供了一个 e820 函数,可用于检索系统物理内存映射,因为 BIOS 在初始化期间通过对芯片组寄存器进行编程来设置该内存映射。

您可以在下表中查看 BIOS 提供的这些标准功能的完整列表:https://en.wikipedia.org/wiki/BIOS_interrupt_call

Coreboot 不提供此功能,因为 Coreboot 不是 BIOS。 Coreboot 没有“输入输出系统”。它只是初始化您的系统并运行您的有效负载。如果您需要 BIOS 接口,则必须使用 SeaBIOS 作为负载。

避免 BIOS 接口与 Linux 一起工作,因为 Linux 无论如何都不依赖 BIOS 功能,它有自己的例程来处理硬件,而不会影响 BIOS。有些事情,比如获取物理内存映射,仍然是需要的,因此 Coreboot 将此信息作为 Linux 引导协议的一部分在 Linux 标头中传递给 Linux 内核:https://github.com/coreboot/coreboot/blob/7128063ecc8099932a4bef8d2e28101b7f652804/util/cbfstool/linux.h

Coreboot 不是 BIOS。它存在于与 BIOS 和 UEFI 不同的类别中。如果您的有效负载需要 BIOS,它将无法工作。您需要进入 Coreboot->SeaBIOS->无论您想要启动什么。

希望这可以帮助。

相关内容