Linux中bootloader介绍
报价宝综合消息Linux中bootloader介绍
一个嵌入式Linux系统从软件的角度通常分为以下四个层次:
引导载入程式。包括固化在firmware中的boot程式码(可选),和Bootloader两大部分。Linux核心。档案系统。应用程序。
Bootloader概念
在嵌入式操作系统中,Bootloader是硬件启动的载入程式,是执行操作系统的前提;在操作系统核心或使用者应用程序执行之前执行的一小段程式码,对软硬件进行相应的初始化和设定,为最终执行操作系统准备好环境,类似于X86计算机中的BIOS固件;Bootloader不属于操作系统,一般采用组合语言和C语言开发,需要针对特定的硬件平台(比如arm、powerpc、MIPS等)编写,Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级装置的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让执行在一块板子上的Bootloader程式也能执行在另一块板子上,一般也都需要修改Bootloader的源程式。Bootloader的两种操作模式
自启动模式:在这种模式下,Bootloader从目标机上的某个固态储存装置上将操作系统(kernel)载入到RAM中执行(读取bootcmd引数),整个过程并没有使用者的介入。互动模式:在这种模式下(uboot可在倒计时按任意键进入到这种模式),目标机上的Bootloader将通过串列埠或网络等方式从开发主机(Host)上下载核心映像和根档案系统映像等到RAM中,可以被 Bootloader写到目标机上的固态储存媒质中,或者直接进行系统的引导。也可以通过串列埠接收使用者的命令。
Bootloader的基本功能
初始化相关硬件把bootloader自搬运到RAM中执行使用者的命令访问环境变数通过网络/串列埠通讯读写RAM/FLASH载入并执行核心常见的Bootloader
Redboot:Redhat公司随eCos释出的一个BOOT方案,是一个开源专案,Linux操作系统引导,线上读写Flash。ARMboot:ARM平台的开源固件专案,2002年ARMboot终止了维护。U-Boot:ARMboot并入了PPCBoot,和其他一些平台的Loader合称U-Boot,是目前最常用的bootloader。Blob、Bios-lt、Bootldr、vivi等