当前位置: 首页 > news >正文

嵌入式系统中的u-boot、kernel、rootfs的区别与关系

嵌入式系统中的u-boot、kernel、rootfs的区别与关系

1. 总览

在嵌入式Linux系统中,软件架构通常分为四个层次,从低到高依次为:

  1. 引导加载程序 (Bootloader):固化在硬件Flash中的引导代码,用于硬件基本配置和内核引导。
  2. 系统内核 (Kernel):操作系统的核心,负责硬件驱动和系统核心功能。
  3. 文件系统 (File System):存储文件数据和文件系统结构,管理文件、目录和文件保护信息。
  4. 用户程序 (Application):运行于操作系统之上,完成特定任务的计算机程序。

2. Linux启动过程

启动过程如下:

linux嵌入式分层启动过程

  1. 上电:系统加电,开始启动。
  2. Bootloader:首先运行,初始化硬件,设置内核启动参数。
  3. 加载内核:Bootloader将内核复制到内存中,并传递启动参数。
  4. 内核挂载根文件系统:内核启动后,挂载根文件系统。
  5. 执行应用程序:根文件系统挂载完成后,启动文件系统中的应用程序。

3. 如何理解Bootloader与Kernel

  • Bootloader:如u-boot,是系统启动的第一段代码,负责初始化硬件和加载内核。
  • Kernel:操作系统的核心,管理硬件资源和提供系统服务。

关键概念补充:

  • 交叉编译:为不同硬件平台编译软件的过程,通常在开发机上进行。
  • 设备树 (Device Tree):一种描述硬件配置的数据结构,用于内核启动时识别硬件。
  • 内核模块 (Kernel Modules):可动态加载到内核中的软件模块,用于扩展内核功能。

4. 文件系统

概念

  • 文件系统:管理存储设备上文件存储和访问的方法和数据结构。
  • 虚拟文件系统 (VFS):Linux内核提供的统一接口,用于支持多种文件系统类型。

关键概念补充:

  • initramfs:一种初始化ram文件系统,用于系统启动初期提供必需的文件和驱动。
  • 文件系统挂载:将文件系统映射到内核的虚拟文件系统树上的过程。

5. uboot与根文件系统的关系

  • uboot:负责初始化硬件,设置内核启动参数,并将内核及根文件系统加载到内存中。
  • 根文件系统:系统启动后首先挂载的文件系统,包含操作系统运行必需的文件和目录。

关键概念补充:

  • 构建系统 (Buildroot):一个工具,用于生成定制的Linux系统,包括内核、文件系统和应用程序。
  • 内核裁剪:根据需要移除内核中不必要的模块和功能,减小内核大小。

6. 总结

嵌入式系统的启动和运行依赖于Bootloader、Kernel和文件系统的紧密协作。理解这些组件的区别和关系对于嵌入式系统开发至关重要。


这份技术文档提供了嵌入式系统中u-boot、kernel、文件系统的区别与关系的概述,并补充了一些关键的关联知识点,以帮助读者更深入地理解这些组件在嵌入式系统中的角色和相互作用。

相关文章:

嵌入式系统中的u-boot、kernel、rootfs的区别与关系

嵌入式系统中的u-boot、kernel、rootfs的区别与关系 1. 总览 在嵌入式Linux系统中,软件架构通常分为四个层次,从低到高依次为: 引导加载程序 (Bootloader):固化在硬件Flash中的引导代码,用于硬件基本配置和内核引导…...

K8s1.28 部署Dashboard获取登录信息

Kubernetes Dashboard 是一个基于 Web 的用户界面,用户可以通过它管理和监控 Kubernetes 集群。它提供了对容器化应用程序的概览、集群资源的状态查看、以及对服务和容器的简单操作管理。 配置 Dashboard 访问的方式: Kubernetes 中的服务类型默认是 C…...

智能化大数据平台引领企业迈向精准决策时代

随着科技的飞速发展,大数据平台正逐步迈向更加智能化和自动化的未来趋势。未来的数据平台不仅仅是一个简单的存储和处理数据的工具,而是一个能够自主学习、优化和做出决策的智能系统。这一转变将极大地改变企业处理数据的方式,提高决策的速度…...

1.3 计算机网络的分类

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言一、按分布范围分类二、按传输技术分类三、按拓扑结构分类四、按使用者分类五、按传输介质分类 前言 计算机网络根据不同的标准可以被分为多种类型,本章从分布…...

深入剖析protobuf.js之Field类:内部机制、使用实践与高级应用指南

引言 在protobuf.js库中,Field类扮演着极其重要的角色,它定义了消息(Message)中每个字段的元数据和行为。Field类不仅包含字段的类型、编号、规则等基本信息,还负责字段的序列化和反序列化逻辑。本文将对protobuf.js的…...

docker挂载宿主机文件run命令启动报错

背景 使用docker安装mysql8,docker run 命令提示报错 命令: docker run -d \ -p 3306:3306 \ -v ~/docker/mysql8/log/mysqld.log:/var/log/mysqld.log \ -e MYSQL_ROOT_PASSWORD=123456 \ --name mysql8 mysql:8.0.36 报错信息 docker: Error response from daemon: fai…...

Python实现 Socket.IO 的在线游戏场景

博客:Python 实现 Socket.IO 的在线游戏场景 目录 引言 什么是 Socket.IO?Socket.IO 的应用场景Socket.IO 在在线游戏中的优势本文案例概述 Socket.IO 的工作原理 Socket.IO 的事件驱动机制WebSocket 与 Socket.IO 的比较Socket.IO 的握手和连接机制 …...

A+B P1001 A+B Problem

P1001 AB Problem #include <bits/stdc.h> using namespace std; int main(){int a,b;std::cin>>a>>b;std::cout<<ab; }...

git编译安装报错

编译安装步骤 卸载旧的 yum -y remove gitcd /usr/local/src/wget https://www.kernel.org/pub/software/scm/git/git-2.15.1.tar.xztar -vxf git-2.15.1.tar.xzcd git-2.15.1make prefix/usr/local/git allmake prefix/usr/local/git installecho "export PATH$PATH:/usr…...

知识|智能网联汽车多域电子电气架构会如何发展?

摘要&#xff1a;随着汽车智能化和网联化技术的快速发展&#xff0c;传统的电子电气架构已经无法满足未来车路云网一体化发展的新需求。本文聚焦于未来智能网联汽车的多域电子电气架构&#xff0c;并从总体设计、硬件系统、通信系统和软件系统四个方面对现有技术进行了详细的综…...

【C++算法】位运算

位运算基础知识 1.基础运算符 << : 左移 >> : 右移 ~ : 取反 & : 按位与&#xff0c;有0就是0 I : 按位或&#xff0c;有1就是1 ^ : 按位异或&#xff0c;&#xff08;1&#xff09;相同为0&#xff0c;相异为1&#xff08;2&#xff09;无进位相加 2.…...

PMP--一模--解题--101-110

文章目录 11.风险管理--过程--识别风险→实施定性风险分析→实施定量风险分析→规划风险应对→实施风险应对→监督风险101、 [单选] 在项目即将进入收尾阶段时&#xff0c;项目经理发现了一项原来没有考虑到的新风险。该风险一旦发生&#xff0c;可能给最终的可交付成果带来重要…...

为了有了ReentrantLock还需要ReentrantReadWriteLock?

ReentrantLock 和 ReentrantReadWriteLock 是 Java 中的两种不同实现的锁&#xff0c;它们各自适用于不同的应用场景。以下是为什么需要 ReentrantReadWriteLock 的几个原因&#xff1a; 1. 读写分离 ReentrantLock 是一种独占锁&#xff0c;适用于任何线程操作共享资源的场景…...

Vite打包zip并改名为md5sum哈希案例

通常在DevOps CICD流水线部署前端项目时&#xff0c;一般默认都要将dist资源打包为zip&#xff0c;并且把zip名称改为md5sum哈希值(用于文件完整性验证)。 md5sum是什么&#xff1f; md5sum 是一个在 Unix 和类 Unix 系统&#xff08;如 Linux&#xff09;中广泛使用的命令行…...

并行编程实战——TBB中节点的数据结构

一、节点的定义 在前面分析过了节点相关的应用和功能&#xff0c;也在其中分析过一些节点的数据定义情况。本文就对节点的数据定义进行一个更详细具体的分析说明&#xff0c;特别是对一些应用上的细节展开说明一下。知其然&#xff0c;然后知其所以然。 节点的定义&#xff0c…...

ClickHouse总结

背景 OLAP&#xff08;联机分析处理&#xff09; 是一种用于在大规模数据集上进行复杂分析的数据处理方法。与OLTP&#xff08;联机事务处理&#xff09;系统专注于支持日常业务交易和操作不同&#xff0c;OLAP系统旨在提供对多维数据的快速、灵活的查询和分析能力。 OLAP场景…...

Guava中Preconditions校验

Guava中Preconditions校验 场景引入Guava 参数校验 Preconditionspom 依赖引入常用的方法 场景引入 提出疑问&#xff1f;为什么不直接使用 jsr330校验注解对实体类进行校验呢&#xff1f; 答&#xff1a;不同的场景&#xff0c;如短信码验证登录&#xff0c;账号密码登录此类…...

容器技术--Docker常用命令

Docker常用命令 镜像的命令 # 查看本地所有镜像 docker images # 向服务端发送请求,服务端处理 # 只获取镜像id docker images -q # 镜像管理 docker image# 查看镜像的详细信息 docker image inspect 镜像id # 查看 容器整体信息 docker info | grep -iE...

【Linux】网络层协议——IP

一、IP协议 在前面&#xff0c;我们学习了应用层和传输层&#xff0c;接下来&#xff0c;我们来学习网络层&#xff0c;网络层的主要功能是在复杂的网络环境中确定一个合适的路由。 1.1 IP协议的基本概念 主机&#xff1a;配有IP地址&#xff0c;有可以进行路由控制的设备路由…...

【Echarts】vue3打开echarts的正确方式

ECharts 是一个功能强大、灵活易用的数据可视化工具&#xff0c;适用于商业报表、数据分析、科研教育等多种场景。那么该如何优雅的使用Echarts呢? 这里以vue3为例。 安装echarts pnpm i echarts封装公用方法 // ts-nocheck import * as echarts from echarts; // 我们这里借…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...