从裸机上电开始启动计算机的过程听起来是相当复杂的。在PC的世界里,BIOS统治这个领域已经几十年了。不过,哲学上讲任何世界都是从出生,到繁荣,再后到死亡的过程。BIOS的寿命也即将迎来终结。BIOS的掘墓者即是EFI。对于MAC用户来说,EFI的使用已经有好长一段时间了。而在嵌入式Linux的世界里,u-boot则在长时间里扮演着老大哥的角色。
U-boot,或者来自DENX的das U-boot提供了非常丰富的功能。如:网络,脚本,支持FLASH(这里的flash是存储方面的flash,而不是adobe的那个flash)。一般的嵌入式系统工程序师需要的工具,都提供好了。
还是那句话,对于万事万物,都是生生死死的过程啊。u-boot的功能越来越强大。催生了新的事物的诞生。它的名字就是:Barebox。
Barebox最开始被称之为:u-boot-v2,它是一个像u-boot一样野心勃勃的bootloader。不过Barebox更有Linux的味道一些。它的发展抛弃了u-boot而越来越像Linux。它有文件系统,有基本的shell,甚至还有与Linux近似的驱动模块。
Barebox的另一个创新即是,bootloader可以被构建成一个用户空间的应用程序。这样的好处是显而易近的,你可以更方便的开方和调试Barebox。
说了这么多,看看Barebox是个什么样子呢?
uboot:/
uboot:/ ls
. .. dev env
和Linux一样,dev目录夹下面放了系统的设备文件。比如,mem设备文件描述了计算机的内存。
再回到u-boot,它有一个特殊的命令:md。md命令可以查看内存的内容。对于Barebox,提供了同样的工具。不过这个工具是以一种POSIX的方式实现的:打开/dev/mem设备,lseek移动文件指针,read读出文件内容。这样的实现方式不仅仅提升了代码结构,它还使得md命令可以不需修改就应用到其它设备上,比如flash存诸器。
如果你想测试一下Barebox到底如何。你可以有两种方法。
- 第一:你可以下载Barebox的沙盒功能即把它构建成一个Linux的用户空间的应用。来自Barebox官方的解释是:
Sandbox:
If you develop features for Barebox, you can use the 'sandbox' target which compiles Barebox as a POSIX application in the Linux userspace: it can be started like a normal command and even has network access (tun/tap). Files from the local filesytem can be used to simulate devices. 如果你要为Barebox开发功能,你可以使用'沙盒'。这种方式把Barebox构建成一个Linux的用户空间程序。它像一般的命令一样,而且还有网络功能。来自文件系统的文件可以被用来模拟设备。
- 第二:不说你也知道,把Barebox安装到真真正正的硬件上吧!对于我,我就尝试过在PC机的一块旧式的主板上安装Barebox。
最后,Barebox的官方网站是: http://barebox.org/
copyright ykyi.net