讲师博文
Bootloader存在的意义是什么? 来源 : 华清远见     2023-09-09

Bootloader存在的意义是什么?

前言

首先做个字面翻译(boot启动loader装载器),合在一起叫“启动加载器”,关键字有两个一个是“启动”一个“装载”,可以理解为辅助某个“软件或系统”启动的“装置”。“启动软件”还需要“装置”,不是双击鼠标就运行了?——经常听到学员如是反应。的确在普通用户使用电脑时(尤其是windows系统)只需要简单双击鼠标或者触摸屏就可以启动自己想要启动的软件。针对bootloader的讨论是计算机专业人才针对计算机底层的运作机理的,尤其是“操作系统”是如何启动的,才知道其意义;

技术前提

计算机核心组件:

Cpu:执行程序的组件

内存:容量小,存放程序和数据的地方,掉电消失,但是cpu能直接去操作的地方

注意:SRAM内存上电可用,DRAM内存条需要进行必要的初始化才能用

外村:容量大,存放程序和数据的地方,掉电不消失,但是cpu不能直接操作

一个简单结论:程序平时是存在外存上的,运行的时候需要搬入内存才能运行。

更细致的剖析

以exynos4412嵌入式芯片为例,上电后cpu自动将启动盘的固定位置前边的一小部程序指令(BL1)搬入内部SRAM,内部的SRAM容量是非常少的(如图 不会大于K为单位),可想而知像操作系统这样庞大的软件是不可能只有k单位的。那就遇到一个问题:操作系统等大软件是不能简单烧录到启动盘。为了解决这个问题,绿色部分就需要存在,里边的代码的使命就清楚了:

将容量很大的DRAM做好初始化,以便于让操作系统也有机会放入内存,以便被执行。

将操作系统从启动盘搬入内存DRAM。

将必要的启动初参数(比如系统默认ip等)传入操作系统,并让cpu跳到操作系统运行。

综上所述有这3个功能的代码就可以被称之为bootloader软件!!!常见开源的有:u-boot、grab、vivi等

总结

有了bootloader软件的实现,才有了操作系统或者稍大一点的裸机程序执行的可能性,当然这与cpu、内存等硬件设计也是非常相关的,如果不考虑成本等因素,SRAM也可以做的很大,其实没有bootloader也能正常启动“大软件”。综合考虑计算机设计人员选择了现在的设计,so启动加载程序可以说必不可少。

 

扫码申领本地嵌入式教学实录全套视频及配套源码

上一篇:Rabbitmq-交换机详解

下一篇:嵌入式开发常用的调试手段有哪几种?简述它们各自的优缺点?

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号