统在上电或复位时通常都从地址 0x00000000 处开始执行,而在这个地址处安 排的通常就是系统的 Boot Loader 程序
大多数 Boot Loader 都包含两种不同的操作模式:”启动加载”模式和”下载” 模式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,Boot Loader 的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载 工作模式的区别。启动加载(Boot
loading)模式:这种模式也称为”自主”
(Autonomous)模式。也即 Boot Loader 从目标机上的某个固态存储设备上将 操作系统加载到
RAM
中运行,整个过程并没有用户的介入。这种模式是
Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显 然必须工作在这种模式下。下载(Downloading)模式:在这种模式下,目标 机上的 Boot Loader 将通过串口连接或网络连接等通信手段从主机(Host)下 载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首 先被 Boot Loader 保存到目标机的 RAM 中,然后再被 Boot Loader 写到目标 机上的 FLASH 类固态存储设备中。Boot Loader 的这种模式通常在第一次安 装内核与根文件系统时被使用;此外,以后的系统更新也会使用 Boot Loader 的这种工作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用户 提供一个简单的命令行接口。像 Blob 或 U-Boot 等这样功能强大的 Boot Loader 通常同时支持这两种工作模式,而且允许用户在这两种工作模式之间进 行切换。比如,Blob 在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 blob 切换到下载模式。如果在 10 秒内没有 用户按键,则 blob 继续启动 Linux 内核。
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!