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

相关推荐
mcupro1 小时前
提供一种刷新X410内部EMMC存储器的方法
linux·运维·服务器
不知 不知2 小时前
最新-CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机
linux·运维·服务器·centos
BUG 4042 小时前
Linux--运维
linux·运维·服务器
千航@abc2 小时前
vim在末行模式下的删除功能
linux·编辑器·vim
jcrose25804 小时前
Ubuntu二进制部署K8S 1.29.2
linux·ubuntu·kubernetes
爱辉弟啦4 小时前
Windows FileZila Server共享电脑文件夹 映射21端口外网连接
linux·windows·mac·共享电脑文件夹
progrmmmm4 小时前
k8s使用nfs持久卷
linux·服务器·kubernetes·k8s·运维开发
元气满满的热码式4 小时前
K8S中Service详解(二)
linux·网络·kubernetes
无空念4 小时前
Linux - 五种常见I/O模型
linux·运维·服务器
milk_yan5 小时前
MinIO的安装与使用
linux·数据仓库·spring boot