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博客

相关推荐
lcreek5 小时前
Linux信号机制详解:阻塞信号集与未决信号集
linux·操作系统·系统编程
shandianchengzi6 小时前
【记录】Tailscale|部署 Tailscale 到 linux 主机或 Docker 上
linux·运维·docker·tailscale
John Song6 小时前
Linux机器怎么查看进程内存占用情况
linux·运维·chrome
sichuanwuyi6 小时前
Wydevops工具的价值分析
linux·微服务·架构·kubernetes·jenkins
持戒波罗蜜7 小时前
ubuntu20解决intel wifi 驱动问题
linux·驱动开发·嵌入式硬件·ubuntu
不做无法实现的梦~7 小时前
使用ros2来跑通mid360的驱动包
linux·嵌入式硬件·机器人·自动驾驶
点云SLAM7 小时前
C++内存泄漏检测之Windows 专用工具(CRT Debug、Dr.Memory)和Linux 专业工具(ASan 、heaptrack)
linux·c++·windows·asan·dr.memory·c++内存泄漏检测·c++内存管理
LuiChun7 小时前
Docker Compose 容器服务查询与文件查看操作指南(Windows Docker Desktop 版)【一】
linux·运维·windows·docker·容器
${王小剑}8 小时前
在离线ubuntu上布置深度学习环境
linux·运维·ubuntu
Java程序之猿8 小时前
Linux使用U盘安装centos及报错You might want to saue “/run/initramfs/rdsosreport.txt“ 处理
linux·运维·服务器