引导裸机

作者:Johan Thelin

引导计算机总是比人们想象的要复杂。 在 PC 端,BIOS 似乎终于退役,并被 EFI 取代(我想知道哪个是最后一个使用 BIOS 来加载辅助引导加载程序的操作系统)。 在 Mac 上,EFI 已经存在一段时间了。 然而,在嵌入式 Linux 系统上,u-boot 长期以来一直是一个重要的角色。

来自 DENX 的 U-boot,或 das U-boot,提供了许多有用的功能:网络、基本脚本、FLASH 处理等等 - 所有这些工具都是普通嵌入式系统工程师用来引导、更新和排除故障的。

与所有软件一样,它会达到一个支持现有平台的程度,该程度变得如此之大,以至于它会激发一个新的开始。 输入 Barebox。

Barebox,以前称为 u-boot-v2,是一个与 u-boot 具有相同目标和雄心的引导加载程序,但采用了一种新的、更类似 Linux 的方法。 这意味着拥有文件、一个基本 shell、文件系统支持和一个从 Linux 借用的驱动程序模型。

其他的改进是,引导加载程序可以构建为 Linux 的用户空间应用程序 - 从而更容易开发和调试。 总的来说,Barebox 将 u-boot 从阻碍它的传统中移开,并朝着 Linux 发展,以实现代码和知识的共享。

那么,一个 Barebox 会话是什么样的呢? 对于最终用户来说,希望它根本不会显示。 对于开发人员来说,串口会揭示真相。

Hit any key to stop autoboot:  2

敲击那个键,会给你一个提示符

uboot:/

和一个环境

uboot:/ ls
.       ..      dev     env

与 Linux 中一样,dev 目录包含系统的设备。 例如,mem 设备代表计算机的内存。

回到 u-boot 中,有一个特定的 md 命令来显示内存的内容。 它基本上是查找内存并显示信息。 在 Barebox 中,使用更像 POSIX 的方法实现相同的实用程序。 /dev/mem 设备被打开,地址传递给 lseek,然后读取信息。 这不仅改进了代码结构,还意味着可以将相同的 md 命令应用于其他设备,例如闪存。

如果您想测试此引导加载程序,有几种方法可以做到。 首先,您可以下载并为 sandbox 平台构建它。 这会创建一个 Linux 用户空间应用程序,您可以使用它进行测试。

对于更勇敢的读者,可以在 许多板上引导 Barebox。 就我而言,我将在 BeagleBoard 和一台旧 PC 上尝试它。

加载 Disqus 评论