1.概念
简单的说,Bootloader就是在操作系统运行之前运行的一程序,它类似于PC中的BIOS程序。通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射图功能,从而将系统的软硬件环境带到一个合适的状态,为最终调用系统内核做好准备。
通常,Bootloader是严重依赖硬件的,特别是在嵌入式当中。因此,在嵌入式中建立一个通用的Bootloader是几乎不可能的事情。但是还是可以对Bootloader归纳出一些通用的概念来进行学习。
(1).Bootloader所支持的CPU和嵌入式开发板
每种不同的CPU体系结构都有不同的Bootloader。有些Bootloader也支持多种体系结构的CPU,比如U-Boot就同时支持ARM和MIPS结构体系。除了依赖于CPU的体系结构外,Bootloader实际上也依赖于实际的嵌入式开发板设备的配置。
(2).Bootloader的安装媒介
系统加电或复位后,所有的CPU都会从某个由CPU制造厂商预先安排的地址上取指令。而基于CPU构建的嵌入式系统都有某种类型的固态存储设备(如ROM,EEPROM,或FLASH等)被映射到这个预先安排的地址上,因此在系统加电后,CPU将首先执行Bootloader程序。
(3).Bootloader的启动过程分为单阶段和多阶段,通常多阶段的Bootloader能提供更为复杂的功能,以及更好的可移植性。
(4).Bootloader的操作模式。大多数的Bootloader都有两种不同的操作模式,分别是“启动加载”模式和“下载”模式,这种区别仅对于开发人员才有意义。