支持Linux的Bootloader比较多,发展到2010年,出现了一些必然的结果,有些Bootloader已经消失,有些Bootloader被取代,有些Bootloader被合并,有些虽然在发展,不过已退居一个偏僻的角落。现在就主流的或者说应用的有点广泛的Bootloader做个介绍。
GRUB/GRUB2:GRUB是主要针对x86系列处理器的Bootloader,同时支持服务器级PowerPC/MIPS处理器,曾经作为LILO(原Linux + x86的主流Bootloader)的后继者出现,现在终于如愿,LILO已停止发展,GRUB一家独大,着也正常,毕竟LILO不如GRUB的功能强劲。现在GRUB已经发展到第二代GRUB2,而且作为GNU的项目,后续的发展不成问题。
CoreBoot: 曾经叫做LinuxBIOS,被称为x86 BIOS的完整替代品,不过不象GRUB那么幸运,先被Intel忠爱,后被抛弃,发展了很多年,也没能实现自己的目标;不过CoreBOOT使用C语言开发,不象BIOS那样使用晦涩的汇编语言,开放性比较好,比起BIOS的过头的封闭性来,更符合潮流,无奈不受Intel喜欢,目前只能在艰难中前行。
U-Boot: 主流的Linux的Bootloader,支持X86/ARM/PowerPC/MIPS等众多CPU处理器架构。最初U-Boot是PPCBoot,后来和PPCBoot移植到ARM处理的版本ARMBoot合并改名为U-Boot,后续不断的添加其它处理的支持,不断的改进Shell工具,进而发展为主流的Linux的Bootloader。其强劲的发展能力,优秀的代码架构无不令人赞叹。
Redboot: 是Red Hat开发的Bootloader,支持众多CPU处理器架构,和eCos操作系统糅合在一起,限制了Redboot的发展,当Red Hat 放弃eCos操作系统发展的时候Redboot就变的越来越老化,分支的出现就不可避免,Intel开发了Redboot支持IXP/IOP Xscale处理支持的代码,不过只是提供给Intel自己客户使用,Redboot已经变成一个非主流的Bootloader。
Yamon: 针对MIPS系列处理器的Bootloader,主要由MIPS公司开发核心代码,使用MIPS核开发应用处理器的厂商会基于MIPS公司开发核心代码Yamon来扩展自己的代码,Sigma Design SMP8xxx 高清多媒体处理器的Bootloader就是这种实现,这种实现弥补了U-Boot对MIPS处理器支持的不足。某种意义上说Yamon是MIPS处理器Bootloader的一个选项。
最后回顾一下主流版本已经停止发展的Bootloader: LILO、ROLO、BLOB、PMON、SH-Boot、Bootldr等,这些Bootloader你也许有所耳问,也许无从知道。作为Linux开发者,只要能熟悉主流的Linux系统Bootloader,对Linux系统使用Bootloader就会有个感性的认识。当然会有厂商针对自己或者合作伙伴的处理器(如ARM核)开发自有的Bootloader如ViVi、rrload等,不过独有的东西,除非特殊,不然建议不要使用。
(作者 冯青华 信庭嵌入式工作室- 主管)
<转载请注名来路>