初识BootLoader

2024-05-29 21:20
文章标签 初识 bootloader

本文主要是介绍初识BootLoader,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 BootLoader的概念

引导加载程序是系统加电后运行的第一段软件代码。回忆一下PC的体系结构我们可以知道,PC机中的引导加载程序由BIOS(本质是一段固件程序)和位于硬盘MBR中的BootLoader(如LILO、GRUB等)组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,然后将控制权交给BootLoader。BootLoader的主要任务是将OS内核镜像从硬盘上读到RAM中,然后跳转到OS内核的入口,也即开始启动操作系统。

在嵌入式系统中,一般并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。

Bootloader的中文名是启动引导程序,它可以工作在无操作系统的环境下,也可以工作在有操作系统的环境下。在无操作系统环境下通常表现为:与应用程序编译在一起,在应用程序之前运行的一段代码,一般由汇编编写,完成基本硬件的初始化,为应用程序做准备。

通常说的BootLoader一般特指在操作系统环境下:在操作系统运行之前运行的一段或多段程序。BootLoader的功能是初始化硬件设备、建立系统的内存空间映射图,将系统的软件硬件环境带到一个合适的状态,为调用操作系统内核准备好正确的环境,把操作系统内核映像加载到RAM中,并将系统控制权交给它。

二、Bootloader的分类

按照CPU的不同,BootLoader的要求也不一样

1、针对X86上有LILO、GRUB、ntloader等;

2、针对ARM架构的有u-boot、vivi、armboot等;

3、针对ppc架构的有ppcboot等。

三、Bootloader的工作流程

1、复位和启动:当车辆的电源开关打开时,系统会进行复位。此时,Bootloader开始运行,并启动应用程序软件。

2、硬件初始化:Bootloader负责初始化硬件设备,包括内存、CPU、总线等。

3、加载运行时环境:在硬件初始化完成后,Bootloader会加载运行时环境,如驱动程序、运行库等。

4、刷新应用程序软件:最后,Bootloader收到编程请求时,会更新应用程序软件。

这篇关于初识BootLoader的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014681

相关文章

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

C语言入门系列:初识函数

文章目录 一,C语言函数与数学函数的区别1,回忆杀-初中数学2,C语言中的函数 二, 函数的声明1,函数头1.1,函数名称1.2,返回值类型1.3,参数列表 2,函数体2.1,函数体2.2,return语句 三,main函数四,函数的参数与传递方式1,实参和形参1.1,函数定义(含形参)1.2,函数调用(使用实参) 2,参数传递方式2.1,值传递2.2,引用传递 五,函数原型与预声明1,

任务5.1 初识Spark Streaming

实战概述:使用Spark Streaming进行词频统计 1. 项目背景与目标 背景: Spark Streaming是Apache Spark的流处理框架,用于构建可伸缩、高吞吐量的实时数据处理应用。目标: 实现一个实时词频统计系统,能够处理流式数据并统计文本中的单词出现频率。 2. 技术要点 Spark Streaming集成: 与Spark生态的其他组件如Spark SQL、ML

初识 SpringMVC,运行配置第一个Spring MVC 程序

1. 初识 SpringMVC,运行配置第一个Spring MVC 程序 文章目录 1. 初识 SpringMVC,运行配置第一个Spring MVC 程序1.1 什么是 MVC 2. Spring MVC 概述2.1 Spring MVC 的作用: 3. 运行配置第一个 Spring MVC 程序3.1 第一步:创建Maven模块3.2 第二步:添加 web 支持3.3 第三步:配置 w

Bootloader -- U-Boot 介绍

Bootloader -- U-Boot 介绍 1 介绍1.1 概述1.2 知名 BootloaderLILO (Linux Loader)GRUB (GNU GRand Unified Bootloader)LoadlinROLO (Rockbox Loader)EtherbootLinuxBIOS (现在叫 coreboot)BLOBU-BootRedBoot 1.3 BootLoade

测试辅助工具(抓包工具)的使用1 之初识抓包工具(fiddler)

1.什么是抓包? 说明:客户端向服务器发送请求以及服务器响应客户端的请求,都是以数据包来传递的。 抓包(packet capture):通过工具拦截客户端与服务器交互的数据包。 抓包后可以修改数据包的内容  2.为什么要抓包? 确定bug是前端研发人员的还是后端研发人员的 3.如何抓包? 1)使用抓包工具Fiddler 2)Fiddler介绍: Fiddl

UDP编程初识

复习: TCP     每个TCP套接字都有一个发送区,我们可以使用SO_SNDBUF来更改缓冲区的大小,当进程调用write时,内核从该应用进程的缓冲区中复制所有数据到套接字的缓冲区。如果该套接字的发送缓冲区容不下该应用进程的所有数据(或是应用进程的缓冲区大于套接字的发送缓冲区,或是套接字的发送缓冲区已有其他数据),该应用进程将被投入睡眠(这里的套接字是阻塞的),内核将不从write系统

第十六章(二) 套接字初识

 数据传输:  尽管可以通过 read 和 write 交换数据,但这就是这两个函数所能作的一切。但是如果想要指定选项,从多个客户端接收数据包,或者发送带外数据,就需要使用6个为数据传递而设计的套接字函数。  三个传送数据的套接字函数: <span style="color:#000000;">ssize_t send(int sockfd, void *buf, size_t n

第十六章(一) 套接字初识

 地址格式  一个地址标识一个特定通信域的套接字端点,地址格式与这个特定的通信域相关。为使不同的格式地址能够传入到套接字函数,地址会被强制转化成一个通用的地址结构: struct sockaddr{sa_family_t sa_family; //address familychar sa_data[]; //variable-length address...};

Libevent源码分析之event结构体初识

I/O框架库以库函数的形式,封装了较为底层的系统调用,给应用程序提供了一组更为便捷的接口 各种I/O框架库的实现原理基本相似,要么以Reactor模式实现,要么以Proactor模式实现,要么同时用这两种模式。 拿基于Reactor模式的I/O框架库来说,包含以下几个组件: 1、句柄     I/O框架库要处理的对象,即I/O事件、信号和定时事件,统一称为事件源。一个事件源通常和