首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >COREBOOT与SEABIOS的关系是什么?

COREBOOT与SEABIOS的关系是什么?
EN

Unix & Linux用户
提问于 2020-06-05 21:25:49
回答 2查看 2.8K关注 0票数 5

我对投资于支持libreboot的硬件很感兴趣,而且我知道这是一个用固件块删除的核心重新启动的叉子,但是我不知道什么是海鸟。

我做了一些研究,但是没有找到(我理解的)关于海鸟在所有这些中的确切位置的信息。我们已经解释过,海鸟是一个有效负载,但是操作系统内核(比如Linux)可以代替为“有效负载”。在尝试修改Chromebook时,以及在qemu和Purism的产品上,我都曾提到过海鸟,但据我所知,在使用coreboot时,并不需要海鸟。

是更高级别的海鸟(正如术语“有效载荷”所暗示的那样),还是在较低的级别(正如名称' seabios‘本身所暗示的那样)。

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

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

我已经全职使用GNU/Linux十多年了,但是我的知识已经超出了系统和GRUB脚本的范围。到目前为止,从未研究过libre BIOS/UEFI替代方案。

我非常希望在承诺购买硬件之前澄清这一点(尽管支持的硬件列表非常有限)!

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-06-07 09:12:55

我不知道你在寻找什么样的复杂答案,以下是我简单而冗长的尝试:

消费者使用IBM克隆已经很长时间了。它们有一个名为BIOS的平台初始化固件,在某种程度上是反向设计的,以便IBM以外的其他制造商可以开始生产兼容的机器。其他计算机系统使用不同的固件,如泰铵,EFI是在那里开发的,后来成为了英特尔处理器(TianoCore)的Mac和PC的新标准。Coreboot,最初命名为LinuxBIOS,是一种尝试删除大部分,或所有可能的私有代码来引导您的Linux内核,这是最初的目标。在某个时候,该项目的成员认为支持机制比仅仅加载Linux内核更灵活。用Coreboot替换计算机的原始固件似乎很困难,即使在Linux用户中也是如此,如果您成功的话,您将只能引导Linux。在Coreboot上运行Windows可能不是大多数人想要的,但它有其生态位。一个更好的例子是更熟悉BSD的用户。当然还有更多: Minix,Haiku等等。如果您想要引导其中的任何一个,您必须选择一个提供这些操作系统所期望的接口的“有效负载”。

进一步阅读和材料:

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

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

票数 2
EN

Unix & Linux用户

发布于 2021-01-05 18:00:30

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

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

您可以在下面的表中看到BIOS提供的这些标准函数的完整列表:https://en.wikipedia.org/wiki/BIOS_中断_打电话

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->任何您想要引导的东西。

希望这能有所帮助。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/591152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档