嵌入式 Linux 设备刷系统具体组成

嵌入式 Linux 设备刷系统具体组成

  • 1 介绍
    • 1.1 概述
    • 1.2 嵌入式 Linux 的组成
    • 1.3 U-Boot
    • 1.4 Linux 内核
    • 1.5 设备树
    • 1.6 根文件系统
  • 参考

1 介绍

1.1 概述

一个完整的 linux 系统,通常包含了 U-Boot、kernel、设备树以及根文件系统。
在这里插入图片描述

1.2 嵌入式 Linux 的组成

在这里插入图片描述

1.3 U-Boot

U-Boot 是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,包括PPC、ARM、AVR32、MIPS、x86、68k、Nios 与 MicroBlaze。这也是一套在 GNU 通用公共许可证之下发布的自由软件。Uboot 的全称 Universal Boot Loader,是遵循 GPL 条款的开源项目,U-Boot的主要作用是用来启动操作系统内核,它分为两个阶段,即 boot + loader,boot 阶段启动系统,初始化硬件设备,建立内存空间映射图,将系统的软硬件带到一个合适的状态,loader 阶段将操作系统内核文件加载至内存,之后跳转到内核所在地址运行。

1.4 Linux 内核

Linux 是一种开源操作系统内核。Linux 内核的主要模块(或组件)分以下几个部分:进程管理子系统、内存管理子系统、文件子系统、网络子系统、设备子系统等。
在这里插入图片描述

1.5 设备树

设备树是一种描述硬件的数据结构,它把这些硬件设备的信息,而这个文件,就是 Device Tree(设备树),设备树包括设备树源码(Device Tree Source,DTS)文件、设备树编译工具(Device Tree Compiler,DTC)与二进制格式设备树(Device Tree Blob,DTB),DTS 包含的头文件格式为 DTSI。

列表 1: 设备树描述

node1 {
    a-string-property = "A string";
    a-string-list-property = "first string", "second string";
    a-byte-data-property = [0x01 0x23 0x34 0x56];

    child-node1 {
        first-child-property;
        second-child-property = <1>;
        a-string-property = "Hello, world";
    };
};

Uboot 和 Linux 不能直接识别 DTS 文件,而 DTB 可以被内核与 BootLoader 识别解析,通常在制作 NAND Flash、SD Card 启动镜像时,通常会为 DTB 文件留下一部分存储区域以存储 DTB,在BootLoader 启动内核时,会先读取 DTB 到内存,再提供给内核使用。
在这里插入图片描述

1.6 根文件系统

根文件系统(rootfs)是 linux 在初始化时加载的第一个文件系统,根文件系统包括根目录和真实文件系统,它包含系统引导和使其他文件系统得以挂载(mount)所必要的文件。根文件系统包函 Linux 启动时所必须的目录和关键性的文件,例如 Linux 启动时必要的初始化文件,它在 init 目录下,此外根文件系统中还包括了许多的应用程序 bin 目录等,任何包括这些 Linux 系统启动所必须的文件都可以成为根文件系统。

在 Linux 内核启动的初始阶段,首先内核会初始化一个基于内存的文件系统,如 initramfs,initrd 等,然后以只读的方式去加载根文件系统(load rootfs),读取并且运行/sbin/init 初始化文件,根据/etc/inittab 配置文件完成系统的初始化工作(提示:/sbin/init 是一个二进制可执行文件,为系统的初始化程序,而/etc/inittab 是它的配置文件),在初始化的过程中,还会以读写的方式重新挂载根文件系统,在系统启动后,根文件系统就可用于存储数据了,存在根文件系统是 Linux 启动时的必要条件。

我们常见的根文件系统制作工具有 buildroot、Ubuntu、Debian、yocto、busybox,这些工具的优缺点列出如下:
在这里插入图片描述

参考

1、yocto 手册
2、[野火]《嵌入式Linux镜像构建与部署——基于LubanCat-i.MX6ULL开发板》
3、BitBake 手册
4、2. 如何学习linux开发
5、嵌入式 Linux 开发的基本概念和学习新路线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/751871.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java源码实现《植物大战僵尸》

前言 学Java的朋友们&#xff0c;福利来了&#xff0c;今天小编给大家带来了一款 植物大战僵尸源码&#xff0c;看图: 视频演示 环境JDK1.8 类继承UML图 源码实现 我们先从main函数看起&#xff0c;继承了javafx.application.Application。JavaFx是Java图形化界面技术AWT、S…

30分钟速通ROS联合Webots仿真实战

写在前面&#xff1a; 本文是ROS联合Webots仿真实战教程&#xff0c;不包含ROS环境安装配置教程&#xff0c;ROS环境安装配置教程可以参考1.2.4 安装 ROS Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 另本文所用版本如下&#xff1a; ubuntu版本&#xff1a;20…

Github 2024-06-28 Java开源项目日报Top9

根据Github Trendings的统计,今日(2024-06-28统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目8非开发语言项目1HTML项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:476 天协议类型:OtherStar数量:63556…

基于 Paimon 的袋鼠云实时湖仓入湖实战剖析

在当今数据驱动的时代&#xff0c;企业对数据的实施性能力提出了前所未有的高要求。为了应对这一挑战&#xff0c;构建高效、灵活且可扩展的实时湖仓成为数字化转型的关键。本文将深入探讨袋鼠云数栈如何通过三大核心实践——ChunJun 融合 Flink CDC、MySQL 一键入湖至 Paimon …

海思SS928/SD3403开发笔记4——u盘挂载

首先一定要将u盘格式化成fat32。 挂载 mkdir /mnt/usb mount /dev/sda1 /mnt/usb成功示意图&#xff1a; 取消挂载 umount /mnt/usb

Python生成图形验证码

文章目录 安装pillow基本用法生成代码 安装pillow pip install pillow 基本用法 特殊字体文字 如下所示&#xff0c;将下载下来的ttf字体文件放到py文件同一文件夹下 分享一个免费下载字体网站&#xff1a;http://www.webpagepublicity.com/free-fonts.html 我选的字体是Baj…

[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式4599张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4599 标注数量(xml文件个数)&#xff1a;4599 标注数量(txt文件个数)&#xff1a;4599 标注…

LearnOpenGL - Android OpenGL ES 3.0 使用 FBO 进行离屏渲染

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好&#xff0c;窗口LearnOpenGL 笔记 - 入门 04 你好&#xff0c;三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…

千年织锦:中国古代包文化的辉煌历程与现代传承

追溯至远古&#xff0c;我们的祖先就开始利用自然界的恩赐——皮革、植物纤维等&#xff0c;制作出最原始的包袋。随着时间的推移&#xff0c;技艺的提升&#xff0c;包的材质逐渐丰富起来&#xff0c;从粗糙到精致&#xff0c;从简单到复杂&#xff0c;每一次材质的革新都是人…

【Django】网上蛋糕项目商城-首页

概念 本文在上一文章搭建完数据库&#xff0c;以及创建好项目之后&#xff0c;以及前端静态文件后&#xff0c;对项目的首页功能开发。 后端代码编写 这里我们使用pymysql模块对数据库进行操作&#xff0c;获取数据。因此需要在dos窗口使用以下指令下载该库文件 pip instal…

netconf_h3c_ac

# -*- coding:utf-8 -*- import xmltodict from ncclient import manageripACip地址, mmanager.connect(hostip,port830,username账号,password密码,hostkey_verifyFalse,device_params{name: h3c},allow_agentFalse,look_for_keysFalse,timeout30)data_xml <top xmlns&qu…

数据库管理系统(DBMS)

一.数据库管理系统 1.简介 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件&#xff0c;用于建立、使用和维护数据库&#xff0c;简称DBMS。它对数据库进行统一的管理和控制&#xff0c;以保证数据库的安全性和完整性。用户通过DBMS访问数据库中…

ASP.NETMVC-简单例子-数据库查询+razor使用+项目发布

环境&#xff1a; win10&#xff0c;SQL Server 2008 R2 参考&#xff1a; asp.net mvc框架之EF的使用 - black娃 - 博客园 https://www.cnblogs.com/fjiqiang/p/11131365.html 目录 数据库查询要求思路操作 razor使用项目发布要求实现 数据库查询 要求 从服务器的数据库中查…

springboot 集成阿里云 OSS

引入依赖 <!-- 阿里云oss依赖 --> <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.9.1</version> </dependency><?xml version"1.0" encoding"…

OWIN(.NET 开放 Web 接口)的幕后故事

在本文中&#xff0c;我们将了解 OWIN 是什么以及它的创建历史。本文将帮助那些想知道它背后的人。 我们将了解一群人如何为 .NET 社区带来宝贵的想法。同样重要的是&#xff0c;微软已经接受了 OWIN&#xff0c;而 ASP.NET Core 基本上就是建立在这个想法之上的。 简单来说&…

pppd 返回错误码 含义

错误码 00&#xff1a; pppd已经断开&#xff0c;或者已经成功建立连接后请求方又中 断了。 01&#xff1a; 发成了一个严重错误&#xff0c;例如系统调用失败或者访问非法内存。 02&#xff1a; 处理给定操作是检测到错误&#xff0c;例如使用两个互斥的操作。 03&#xff1a;…

live555的核心数据结构值之闭环双向链表

live555是采用单进程,单线程的服务器,能够同时支持多个客户端连接,并且有条不紊的进行媒体流的调度,很大一部分原因在于对数据结构的巧妙应用。 下面介绍live555核心的数据结构:闭环双向链表 什么是闭环双向链表? 描述: 一个节点保存有前一个节点的地址和后一个节点的…

2018年全国大学生数学建模竞赛A题高温服装设计(含word论文和源代码资源)

文章目录 一、部分题目二、部分论文三、部分Matlab源代码问题11 求解h1h22 已知h1h2求解温度分布 问题21 求解第二层最佳厚度 四、完整word版论文和源代码&#xff08;两种获取方式&#xff09; 一、部分题目 2018 年高教社杯全国大学生数学建模竞赛题目 A 题 高温作业专用服…

[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式8275张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;8275 标注数量(xml文件个数)&#xff1a;8275 标注数量(txt文件个数)&#xff1a;8275 标注…

2024年度临沂市安全文化书画摄影展开幕

人海信息网山东讯 6月27日&#xff0c;2024年度临沂市安全文化书画摄影作品展&#xff0c;在临沂高新区隆重开幕。本次书画摄影展深入贯彻“以人为本&#xff0c;安全发展”的重要思想&#xff0c;立意高远&#xff0c;内涵丰富&#xff0c;思想深邃&#xff0c;承载着健康、幸…