UBOOT介绍

一、UBOOT简介

U-boot全称 Universal Boot Loader,是遵循GPL条款的开放源码项目,uboot 是一个裸机代码,可以看作是一个裸机综合例程,执行启动内核的功能。

补充:GPL条款(GNU General Public License,GNU通用公共许可证)是一种自由软件许可证,而GNU代表"GNU's Not Unix",是开源的操作系统项目,大多数GNU系统使用开源的Linux内核,GPL条款保证了开源内核的自由性,使用GPL条款后,

  1. 源代码公开:在分发软件时必须提供源代码,或者提供方便获取源代码的方式。

  2. 修改后仍使用GPL:对软件进行修改后,必须使用相同的GPL许可证分发。

  3. 保留版权和许可证:必须在分发软件时保留原始版权声明和GPL许可证条款。

由上可知,UBOOT是通用的引导程序,对系统架构没有要求,因为适用,所以流行。

二、UBOOT源码结构

三、Uboot支持多种启动方式

项目中知道的有 SPI Flash/eMMC/Nvme/SD/Hard Disk/U-Disk/net,要用到的内核映像在哪,就是决定怎么启动。

四、UBOOT启动流程

uBoot 启动过程一般包括以下几个主要步骤:

  1. 硬件初始化:uBoot 首先会执行一系列的硬件初始化操作,包括对处理器、内存、外设等硬件组件进行初始化配置,以便系统能够正常运行。

  2. 加载引导程序:uBoot 会从存储介质(如闪存、SD 卡、网络等)中加载引导程序。这个引导程序通常是一个二进制文件,负责进一步引导系统。

  3. 设置启动参数:uBoot 会设置操作系统启动所需的参数,如内核镜像地址、启动参数、根文件系统的位置等。这些参数通常通过环境变量进行配置。

  4. 加载内核镜像:uBoot 会从指定位置加载 Linux 内核镜像到内存中。内核镜像是 Linux 操作系统的核心组件,它包含了操作系统的核心功能和驱动程序。

  5. 启动内核:一旦内核镜像被加载到内存中,uBoot 会将控制权转交给内核,让内核开始执行。此时,操作系统开始初始化并运行。

  6. 启动根文件系统:内核启动后,它会挂载根文件系统,根据 uBoot 配置的参数找到根文件系统所在的位置,并加载进内存。根文件系统包含了操作系统的文件和目录结构,是操作系统的基础。

参考链接:全网最全面最易懂的U-Boot解读_uboot-CSDN博客

相关推荐
小白同学_C11 小时前
Lab4-Lab: traps && MIT6.1810操作系统工程【持续更新】 _
linux·c/c++·操作系统os
今天只学一颗糖11 小时前
1、《深入理解计算机系统》--计算机系统介绍
linux·笔记·学习·系统架构
不做无法实现的梦~13 小时前
ros2实现路径规划---nav2部分
linux·stm32·嵌入式硬件·机器人·自动驾驶
默|笙15 小时前
【Linux】fd_重定向本质
linux·运维·服务器
陈苏同学15 小时前
[已解决] Solving environment: failed with repodata from current_repodata.json (python其实已经被AutoDL装好了!)
linux·python·conda
“αβ”15 小时前
网络层协议 -- ICMP协议
linux·服务器·网络·网络协议·icmp·traceroute·ping
不爱学习的老登16 小时前
Windows客户端与Linux服务器配置ssh无密码登录
linux·服务器·windows
小王C语言17 小时前
进程状态和进程优先级
linux·运维·服务器
xlp666hub17 小时前
【字符设备驱动】:从基础到实战(下)
linux·面试
弹幕教练宇宙起源18 小时前
cmake文件介绍及用法
android·linux·c++