专栏中心

EEPW首页 > 专栏 > Bootloader的种类

Bootloader的种类

发布人:北京华清远见 时间:2013-07-17 来源:工程师 发布文章

文章来源:华清远见企业学院,原文地址:http://www.farsight.com.cn/news/emb156.htm

    Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映像表,从而建立适当的系统软、硬件环境,为最终调用操作系统内核做好准备。

    对于嵌入式系统,Bootloader是基于特定硬件平台来实现的,因此,几乎不可能为所有的嵌入式系统都建立一个通用的Bootloader,不同的处理器架构有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于两块不同的嵌入式主板而言,即使它们使用同一种处理器,要想让运行在一块主板上的Bootloader程序也能运行在另一块主板上,一般也都需要修改Bootloader的源程序。

    反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的主板有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。

    Bootloader的种类

    嵌入式系统世界已经有各种各样的Bootloader,种类划分也有多种方式。除了按照处理器体系结构不同划分以外,还有通过功能复杂程度进行划分的。

    首先区分一下“Bootloader”和“Monitor”的概念。严格来说,“Bootloader”只是引导设备并且执行主程序的固件;而“Monitor”还提供了更多的命令行接口,进行调试、读写内存、烧写Flash、配置环境变量等。“Monitor”在嵌入式系统开发过程中提供很好的调试功能,开发完成以后,就完全设置成了一个“Bootloader”。所以,习惯上把它们统称为Bootloader。

    表1.4列出了Linux的开放源码引导程序及其支持的体系结构,表中给出了X86、ARM、PowerPC体系结构的常用引导程序,并且注明了每一种引导程序是不是“Monitor”。

表1.4 Linux的开放源码引导程序

Bootloader Monitor 描述 X86 ARM PowerPC
LILO Linux磁盘引导程序
GRUB GNU的LILO替代程序
Loadlin 从DOS引导Linux
ROLO 从ROM引导Linux而不需要BIOS

续表

Bootloader Monitor 描述 X86 ARM PowerPC
Etherboot 通过以太网卡启动Linux系统的固件
LinuxBIOS 完全替代BIOS的Linux引导程序
BLOB LART等硬件平台的引导程序
Vivi 主要为S3C2410等三星处理器引导Linux
U-Boot 通用引导程序
RedBoot 基于eCos的引导程序

    1.X86

    X86的工作站和服务器上一般使用LILO和GRUB。LILO曾经是Linux发行版主流的Bootloader,不过,现在几乎所有的发行版都已经使用了GRUB,GRUB比LILO有更友好的显示接口,使用配置也更加灵活方便。

    在某些X86嵌入式单板机或者特殊设备上,会采用其他的Bootloader,如ROLO。这些Bootloader可以取代BIOS的功能,能够从Flash中直接引导Linux启动。现在ROLO支持的开发板已经并入U-Boot,所以U-Boot也可以支持X86平台。

    2.ARM

    ARM处理器的芯片提供商很多,所以每种芯片的开发板都有自己的Bootloader,使得ARM Bootloader也变得多种多样。最早有ARM720处理器开发板的固件,之后又有了armboot、StrongARM平台的BLOB,还有S3C2410处理器开发板上的Vivi等。现在armboot已经并入了U-Boot,所以U-Boot也支持ARM/XSCALE平台。U-Boot已经成为ARM平台事实上的标准Bootloader。关于ARM的学习可以参考华清远见《ARM开发培训班》的课程大纲。

    3.PowerPC

    PowerPC平台的处理器有标准的Bootloader,就是PPCBOOT。PPCBOOT在合并armboot等之后,创建了U-Boot,成为各种体系结构开发板的通用引导程序。U-Boot仍然是PowerPC平台的主要Bootloader。

    4.MIPS

    MIPS公司开发的YAMON是标准的Bootloader,也有许多MIPS芯片提供商为自己的开发板写了Bootloader。现在,U-Boot也已经支持MIPS平台。

    5.SH

    SH平台的标准Bootloader是sh-boot,RedBoot在这种平台上也很好用。

    6.M68K

    M68K平台没有标准的Bootloader。RedBoot能够支持M68K系列的系统。

    值得说明的是,RedBoot几乎能够支持所有的体系结构,包括MIPS、SH、M68K等。RedBoot是以eCos为基础,采用GPL许可的开源软件工程,现在由core eCos的开发人员维护,源码下载网站是http://www.ecoscentric.com/snapshots。RedBoot的文档也相当完善,有详细的使用手册RedBoot User’s Guide。

    本文选自华清远见嵌入式培训教材《从实践中学嵌入式Linux应用程序开发》

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

在PCB生产过程中,是如何控制走线阻抗的?

EDA/PCB 2025-01-16

电子科技大学--嵌入式系统应用开发技术03

ZNE-10T以太网转串口模块数据手册v1.1

是德科技对可再生能源前瞻:向绿而行,推进可持续发展

ZNE-200T ZNE-200以太网转串口模块使用说明书

嵌入式软件OTA升级,有哪几种FLASH划分方式?

2025-01-16

传台积电拒绝代工三星Exynos芯片,认为商业机密存在泄露风险

大联大友尚集团推出基于ST产品的11kW双向电池充电器方案

常见维修电路板技术汇总

EDA/PCB 2025-01-16

电子科技大学--嵌入式系统应用开发技术01

Supermicro高性能服务器开始量产供货,可针对AI、高性能计算、虚拟化以及边缘端工作负载优化

LG推出第四代OLED电视面板:亮度提高33%,针对AI时代优化

智能计算 2025-01-16

英伟达或于3月推出CPO交换机新品

电子科技大学--嵌入式系统应用开发技术02

ZNE-10T模块V1.00版本和V1.10版本之间的不同

清华大学知名教授解读点石成金的微电子产业(下)

视频 2009-04-24

传特斯拉上海厂部分产线春节停产三周,为量产焕新版Model Y做准备

ZNE-10以太网转串口模块使用说明书

清华大学知名教授解读点石成金的微电子产业(中)

视频 2009-04-24
更多 培训课堂
更多 焦点
更多 视频

技术专区