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

相关推荐
hsjcjh9 小时前
Nodemailer使用教程:在Node.js中发送电子邮件
linux·运维·node.js
不怕犯错,就怕不做10 小时前
linux 如何查看自己的帐号密码及samba的帐号和密码
linux·运维·服务器
地下核武10 小时前
Ubuntu 24.04 在线安装 Qt 6.10.2 后 Qt Creator 无法启动问题记录与解决
linux·qt·ubuntu
张32310 小时前
Linux 启动过程
linux·运维
三万棵雪松10 小时前
【Linux 物联网网关主控系统-Linux主控部分(二)】
linux·嵌入式linux
chinesegf10 小时前
ubuntu建虚拟环境制作docker容器
linux·ubuntu·docker
Stack Overflow?Tan9010 小时前
标注软件labelImg在linux下鼠标滚轮闪退解决办法
linux·labelimg
李彦亮老师(本人)10 小时前
Rocky Linux 9.x 新特性详解
linux·运维·服务器·centos·rocky linux
NiKick11 小时前
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
linux·服务器·网络
biubiubiu070612 小时前
Python 环境安装与 Linux 控制入门
linux·开发语言·python