Bootloader介绍:
bootloader就是在操作系统内核运行之前运行的一段代码。类似于WINDOWS中的BIOS程序。通过这段代码可以完成硬件设备的初始化,以及内存空间的映射图的功能,从而把系统的软硬件带到一个合适的状态,为最终调用内核做好准备。
Bootloader严重的依赖于硬件实现,特别是在嵌入式中,所以在嵌入式世界中想建立一个通用的Bootloader几乎是不可能实现的。尽管如此,仍然可以对Bootloader归纳出一些通用的概念来指导用户特定的Bootloader的设计与实现。
1)Bootloader所支持的CPU和嵌入式开发板
每种不同的CPU体系结构有不同的Bootloader。有些Bootloader也支持不同体系结构的CPU,如U-boot就支持ARM体系结构和MIPS体系结构。除了依赖CPU的体系结构外,Bootloader实际上也依赖于具体的嵌入式板级设备的配置。
2)Bootloader的安装媒介:
系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指令。因此在系统加电后,CPU将首先执行Bootloader程序。
3)Bootloader的启动过程分为单阶段和多阶段两种。通常多阶段的Bootloader能提供更为复杂的功能,以及更好的可移植性。
4)Bootloader的操作模式。大多数Bootloader都包含两种不同的操作模式:“启动加载”和下载模式,这种区别仅对于开发人员才有意义。
* 启动加载模式:这种模式也称为“自主”模式,也就是Bootloader从目标机上的某个固态的存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入,这种模式是嵌入式产品发布时的通用模式。
*下载模式:在这种模式下,目标机上的Bootloader将通过串口连接或网络连接手段从主机(host)下载文件,如下载内核或者跟文件系统映象等,从主机下载的文件通常首先被Bootloader保存到RAM中,然后被Bootloader写到目标机上的FLASH类固态存储设备中。Bootloader的这种模式是系统在跟新时使用的。工作于这种模式的Bootloader通常会向他的终端用户提供一个简单的命令行接口。