bootloader详解程序及其功能和特点

更新时间:2023-07-26 00:12:51 阅读: 评论:0

bootloader详解-----程序及其功能和特点
在进行嵌入式开发时,会碰到一个名词bootloader,那个东西不太好懂,不要说自己写bootloader,确实是能看懂他人的bootoader都比较困难。本文详细的介绍了bootloader的原理,回答了什么是bootloader,什么缘故要用bootloader。看到后,希望您能明白什么是bootloader。
一、引言
在专用的嵌入式板子运行 GNU/Linux 系统已经变得愈来愈流行。一个嵌入式 Linux 系统从软件的角度看通常能够分为四个层次:
马拉松是多少公里1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部份。
2. Linux 内核。特定于嵌入式板子的定制内核和内核的启动参数。
3. 文件系统。包括根文件系统和成立于 Flash 内存设备之上文件系统。通经常使用ram disk 来作为 root fs。双色茉莉花
4. 用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。经常使用的嵌入式 GUI 有:MicroWindows 和 MiniGUI 等。
 
作文插图引导加载程序是系统加电后运行的第一段软件代码。回忆一下 PC 的体系结构咱们能够明白,PC 机中的引导加载程序由 BIOS(其本质确实是一段固件程序)和位于硬盘MBR中的OS Boot Loader(比如,LILO 和 GRUB 等)一路组成。BIOS 在完成硬件检测和资源分派后,将硬盘MBR中的 Boot Loader 读到系统的RAM 中,然后将操纵权交给 OS Boot Loader。Boot Loader 的要紧运行任务确实是将内核映象从硬盘上读到RAM 中,然后跳转到内核的入口点去运行,也即开始启动操作系统。
而在嵌入式系统中,通常并无像BIOS 那样的固件程序(注,有的嵌入式 CPU 也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由 Boot Loader 来完成。比如在一个基于 ARM7TDMI core 的嵌入式系统中,系统在上电或复位时通常都从地址 0x00000000 处开始执行,而在那个地址处安排的通常确实是系统的Boot Loader程序。
护肤指南
 
本文将从 Boot Loader 的概念、Boot Loader 的要紧任务、Boot Loader 的框架结构和Boot Loader 的安装等四个方面来讨论嵌入式系统的 Boot Loader。
二、 Boot Loader 的概念
简单地说,Boot Loader 确实是在操作系统内核运行之前运行的一段小程序。通过这段小程序,咱们能够初始化硬件设备、成立内存空间的映射图,从而将系统的软硬件环境带到一个适合的状态,以便为最终挪用操作系统内核预备好正确的环境。
 
通常,Boot Loader 是严峻地依托于硬件而实现的,专门是在嵌入式世界。因此,在嵌入式世界里成立一个通用的 Boot Loader 几乎是不可能的。尽管如此,咱们仍然能够对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。
 
1. Boot Loader 所支持的 CPU 和嵌入式板
 
每种不同的 CPU 体系结构都有不同的Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。除依托于 CPU的体系结构外,Boot Loader 事实上也依托于具体的嵌入式板级设备的配置。这也确实是说,关于两块不同的嵌入式板而言,即便它们是基于同一种 CPU 而构建的,要想让运行在一块板子上的 Boot Loader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。
 
2. Boot Loader 的安装媒介(Installation Medium)
系统加电或复位后,所有的CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EE
PROM 或 FLASH 等)被映射到那个预先安排的地址上。因此在系统加电后,CPU 将第一执行Boot Loader 程序。
 
3. 用来操纵 Boot Loader 的设备或机制神韵是什么意思
主机和目标机之间一样通过串口成立连接,Boot Loader 软件在执行时通常会通过串口来进行 I/O,比如:输出打印信息到串口,从串口读取用户操纵字符等。
 
4. Boot Loader 的启动进程是单时期(Single Stage)仍是多时期(Multi-Stage)
 神探夏洛克百度云>虞姬的故事
通常多时期的 Boot Loader 能提供更为复杂的功能,和更好的可移植性。从固态存储设备上启动的 Boot Loader 大多都是 2 时期的启动进程,也即启动进程能够分为 stage 1和 stage 2 两部份。而至于在 stage 1 和 stage 2 具体完成哪些任务将在下面几篇讨论。
汇的组词 
5. Boot Loader 的操作模式 (Operation Mode)
 
大多数 Boot Loader 都包括两种不同的操作模式:"启动加载"模式和"下载"模式,这种区别仅关于开发人员才成心义。但从最终用户的角度看,Boot Loader 的作用确实是用来加载操作系统,而并非存在所谓的启动加载模式与下载工作模式的区别。
 启动加载(Boot loading)模式:这种模式也称为"自主"(Autonomous)模式。也即 Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个进程并无效户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显然必需工作在这种模式下。
 下载(Downloading)模式:在这种模式下,目标机上的 Boot Loader 将通过串口连接或网络连接等通信手腕从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常第一被 Boot Loader 保留到目标机的 RAM 中,然后再被 Boo
t Loader 写到目标机上的FLASH 类固态存储设备中。Boot Loader 的这种模式通常在第一次安装内核与根文件系统时被利用;另外,以后的系统更新也会利用 Boot Loader 的这种工作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令行接口。

本文发布于:2023-07-26 00:12:51,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1096671.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模式   系统   内核   加载   启动
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图