U-Boot 和 BIOS 有什么区别?

U-Boot 和 BIOS 有什么区别?

U-Boot 和 BIOS 有什么区别?这两个设备都存在于特定 CPU 上吗?还是一次只能出现一个设备?如果有人能提供示例就好了。

答案1

U-Boot 和 BIOS 之间有什么区别? 这两个设备都存在于特定 CPU 上吗?还是一次只能存在一个设备?

U-Boot 和 BIOS 之间有很多不同。
顺便说一下,它们都是软件,而不是“设备”。

  • BIOS 本质上是一个 PC 概念,它出现在 CP/M 个人计算机和最初的 IBM PC 中。U
    -Boot 努力不辜负其名称(“通用启动”),并已移植到许多架构/平台。

  • BIOS 功能包括重置或开机后的基本系统初始化、执行开机自检 (又名 POST)、提供交互式硬件配置界面 (又名 BIOS 设置) 以及引导 PC。IBM PC 的原始 BIOS 集成设备驱动程序已被放弃,取而代之的是 OS 设备驱动程序。U
    -Boot 功能包括基本系统初始化和引导系统。可以选择中止引导序列以进入交互式命令行会话。由于 U-Boot 是可扩展的,因此可以配置或添加任意数量的功能,例如 POST 和其他诊断、文件系统维护实用程序、网络功能(例如检索时间 (SNTP) 或 IP 地址 (DHCP 客户端))以及读取/写入/修改内存位置。U-Boot 的实际特性和功能将因系统/安装而异。

  • BIOS 作为第一阶段引导加载程序处理 PC 的初始启动。它通常在其所在的闪存中就地 (XIP) 执行。U
    -Boot 通常是第二阶段(甚至第三阶段)引导加载程序。它可以是像 BIOS 一样的第一阶段引导加载程序,因为它可以 XIP,但我不知道是否有任何平台实际上这样做了。通常,U-Boot 从闪存加载并在主内存(例如 SDRAM)中执行。

  • 作为第一阶段的引导加载程序,BIOS 受到的限制相当多,因为它只能加载和执行硬盘上的主引导记录 (MBR)。BIOS 通常不会加载实际的操作系统映像。
    当 U-Boot 提供 uImage 文件格式时,它会知道它正在加载的操作系统,并可以正确准备内存缓冲区和参数以进行正确的操作系统初始化。

  • 由于 BIOS 是基于 PC 的,因此它通常使用视频适配器和键盘作为操作员 I/O 设备。U
    -Boot 通常使用 RS232 串行端口作为操作员 I/O 设备。

  • 最初的 IBM PC BIOS 以 x86 汇编语言列表的形式发布在 IBM PC 技术文档中。AMI、Award 和 Phoenix 销售的现代版本是专有的。U
    -Boot 在 GNU GPL 下发布。

PC 上的 Linux 通常使用 Grub 作为 BIOS 后引导程序。我认为可以使用 U-Boot 代替 Grub,但我不知道支持或反对这种实现的理由。

答案2

我认为不同之处在于 U-boot 是开源的。

U-Boot 最初是为 8xx PowerPC 创建的。它以 PPCBoot 的名称移至 sourceforge.net。两年后,它与 ARM CPU 的引导加载程序 ARMBoot 合并。然后,它发展到支持各种其他芯片和平台。

BIOS 是为 IBM PC 创建的。所以我认为它是闭源的。

答案3

主要区别在于 u-boot 只是一个引导加载程序。Bios 是一个引导加载程序,用于使用主板上的硬件。

答案4

一般来说没有区别。U-Boot 和 BIOS 都是引导加载程序的形式。您不会在一个系统上同时使用两者,而是选择其中之一。

您的 BIOS(基本输入/输出系统)是一组复杂的闪存存储软件,它在开机时运行以初始化您的系统硬件并加载操作系统。

U-Boot 是一个开源引导加载程序,用于各种 Linux 系统,我相信一些 ARM 系统也使用它。它再次用于在启动时处理硬件和操作系统。

如果这篇文章有点简短,请见谅。如果您想阅读有关 u-boot 的完整详细信息,可以通过其 github 获取,互联网上也包含有关 BIOS 的信息。

相关内容