u-boot担任初始化硬件和引导操作系统的作用。从操作系统的角度看,Bootloader的总目标就是正确地调用内核来执行。
将bootload下载到开发板的方法有两种:1、通过片内固化的loader加载bootloader;通常某些CPU内部ROM中固化了一段程序可以用于最初的下载;2、通过JTAG或者仿真器下载:这些工具可以直接操作FLASH,对其进行编程烧录;
GRUB: GNU GRUB 是GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器。用来引导不同系统,如windows,linux。
为什么装双系统的时候要先装windows后装linux原因:后装的操作系统引导程序会破坏之前安装的系统的引导程序,windows的引导程序NTLOADER不能识别linux而linux的引导程序能够识别windows,所以即使后面安装的linux引导程序grub破坏了windows的引导程序 windows也能够靠grub启动起来,故要先装windows再装linux这样两个系统都能启动。
Boot Loader的操作模式(Operation Mode)
主机和目标机之间一般通过串口建立连接,BootLoader软件在执行时通常会通过串口来进行数据传输,如输出打印信息到串口,从串口读取用户控制字符。
大多数Boot Loader都包含两种不同的操作模式:启动加载模式和下载模式,这种区别仅对于开发人员才有意义。从最终用户的角度看,BootLoader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。
² 启动加载(Boot loading)模式:这种模式也称为自主模式bootstrap。也即Boot Loader将存储在目标板Flash中的内核和文件系统的镜像装载到SDRAM中,整个过程无需用户的介入。这种模式是BootLoader的正常工作模式,因此在嵌入式产品发布的时候,BootLoader显然必须工作在这种模式下。
² 下载Downloading模式:在这种模式下,目标机上的BootLoader将通过串口连接或网络连接等通信手段从宿主机Host下载文件,比如下载内核映像和根文件系统映像等。从主机下载的文件通常首先被BootLoader保存到目标机的RAM中,然后再被BootLoader写到目标机上的FLASH类固态存储设备中。BootLoader的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新(bootloader自身也可以这样更新)也会使用Boot Loader的这种工作模式。工作于这种模式下的BootLoader通常都会向它的终端用户提供一些简单的命令行接口。
像U-BOOT等这样功能强大的BootLoader通常同时支持这两种工作模式,而且允许用户在这两种工作模式之间进行切换。比如,U-BOOT在启动时处于正常的启动加载模式,但是它会延时几秒(在配置文件中可以设定)等待终端用户按下任意键而将其切换到下载模式(相当于bios下按del键可进入系统配置界面一样,设置从光盘启动可进行重装),如果在给定时间内没有用户按键,则U-BOOT继续启动,进行正常的启动加载。
Bootloader执行流程:大多数