嵌入式Linux | 什么是 BootLoader、Linux 内核(kernel)、和文件系统?
01
什么是 BootLoader 呢?
它是个引导程序,也就是硬件复位以后第一个要执行的程序,它主要工作就是初始化操作系统运行的环境,比如说内存、定时器、缓冲器等,当这个工作做完以后,再把操作系统的代码加载到内存,然后操作系统就可以启动并执行,到此为止,bootloader 的任务就完成了。
bootloder 类型,比如 U-BOOT、REDBOOT、LILO 等等,俺的开发板用的是 Uboot。
02
什么是 Kernel 呢?
Kernel 就是 Linux 的内核,也就是说 Linux 操作系统本身的代码。那么 U-BOOT 启动到最后,把Linux内核加载到内存,并且跳转到 Kernel 来执行。
03
什么是文件系统呢?
Linux 内核启动到最后一定要挂载一个文件系统。这个是 Linux 的一个特点,它不像其他操作系统。像QT 系统、Android 系统、以及Ubuntu 系统它们的底层都是 Linux 内核,不同的是它们的文件系统不一样。
像Uboot、Kernel、文件系统,最后编译生成出来分别是一个独立的文件,
就是说会生成三个文件,最后我们要学会把这几个文件烧写到板子上。
04
什么是应用程序呢?
它是运行在操作系统上面,通过调用操作系统的资源去工作,是最终的业务逻辑,比如我们 Windows 上面有很多的应用程序,像 QQ、WPS、WORD、EXEL 等,各种各样应用程序有很多。
05
Linux 驱动
Linux 的驱动包括有三种:字符设备、块设备以及网络设备。
06
嵌入式大佬
-
基本数字电路 + C 语言 + 基础框架知识 -----> 嵌入式驱动工程师
-
数据结构+编译原理 ------> 高级嵌入式驱动工程师
-
计算机系统体系结构 + 操作系统(从抽象到具体)-------> 系统架构工程师
07
学习路线

08
环境搭建
| 虚拟机安装和Linux操作系统教程 |
| Linux | Linux 磁盘管理 |
| Qt | ubuntu20.04安装Qt6.5.3并创建一个app完整教程(涉及诸多开发细节,商用慎重) |
| ubuntu+MobaXterm+ssh+运行Qt |
ubuntu下载地址为:
https://www.ubuntu.com/download/desktop

Ubuntu 的安装位置一定要选择一个比较大的盘符,

如果大家的电脑内存只有 8 GB ,那么大家也设置成一半,也就是 4GB 就可以了.

然后设置处理器,因为作者的电脑是四核的,所以我直接把这儿设置成 4,每个处理器内核数量我们这里一般都设置成 1.

09
桥接模式、NAT 模式、仅主机模式,这三个模式都是什么呢。
-
桥接模式就好比,把虚拟机和电脑主机都连接到了同一个局域网下,在这个局域网下,所有的电脑主机都可以访问虚拟机(SSH可以多连接),同样虚拟机也可以访问在这个局域网下的所有电脑主机。后面我们在用 nfs 功能的时候,一定要用桥接模式,用别的模式都是不行的,这里直接选桥接模式是没有问题的。
-
NAT 模式它好比于把虚拟机和电脑主机放到了同一个局域网下,
但是在这个局域网下的另外的主机是不能访问我们的虚拟机的。
-
仅主机模式就好比我们的虚拟机是一台独立的机器,和我们这个局域网下的任何机器都没有关系,当然和我们的主机也没有关系,这个我们一般不用。

USB 控制器,兼容性这里我们把它设置为 3.0。最后一个就是显示器,取消勾选“加速 3D 图形”。设置好了之后点击“确定”,这样虚拟机的硬件设置就已经完成了。

设置分辨率Displays

相关文章:
嵌入式Linux | 什么是 BootLoader、Linux 内核(kernel)、和文件系统?
01 什么是 BootLoader 呢? 它是个引导程序,也就是硬件复位以后第一个要执行的程序,它主要工作就是初始化操作系统运行的环境,比如说内存、定时器、缓冲器等,当这个工作做完以后,再把操作系统的代码加载…...
【ARM中R0寄存器】
ARM中R0寄存器 1 RO介绍1.1 R0 的主要作用1 函数返回值2 函数参数3 通用寄存器4 与其他寄存器的区别 1.2 示例 1 RO介绍 在ARM架构中,R0寄存器是一个通用寄存器;是16 个通用寄存器(R0 到 R15)中的第一个,通常用于存储…...
【JDK17】Jlink一秒生成精简的JRE
之前介绍了 Java17模块化的JDK,模块化后按需使用Jlink 用于精简生成 JRE 环境,这让快速的开发环境增强了编码的愉悦感。在实际生产环境中使用 mave 进行项目的构建,其次再是精简 JRE 缩小容器镜像体积,为实现一体化的流程…...
【第9章】亿级电商平台订单系统-整体技术架构设计
1-1 本章导学 课程主题:系统蓝图描绘与整体技术架构设计核心学习内容: ▶️ 订单系统的整体技术架构设计 ▶️ 架构设计核心方法论与实践应用本章核心内容架构 1. 技术预研 架构设计的基础支撑环节关键技术可行性分析与选型依据2. 整体技术架构设计方法与步骤 结构化设计方法…...
函数(函数的概念、库函数、自定义函数、形参和实参、return语句、数组做函数参数、嵌套调用和链式访问、函数的声明和定义、static和extern)
一、函数的概念 •C语⾔中的函数:⼀个完成某项特定的任务的⼀⼩段代码 •函数又被翻译为子函数(更准确) •在C语⾔中我们⼀般会⻅到两类函数:库函数 ⾃定义函数 二、库函数 1 .标准库和头文件 •C语⾔的国际标准ANSIC规定了⼀…...
AGI大模型(6):提示词模型进阶
1 零样本提示 如今,经过⼤量数据训练并调整指令的LLM能够执⾏零样本任务。 代码如下: from openai import OpenAI from dotenv import load_dotenv load_dotenv() # 初始化 OpenAI 服务。 client = OpenAI()prompt = """ 将⽂本分类为中性、负⾯或正⾯。 ⽂…...
ImGui 学习笔记(五) —— 字体文件加载问题
ImGui 加载字体文件的函数似乎存在编码问题,这一点可能跟源文件的编码也有关系,我目前源文件编码是 UTF-16。 当参数中包含中文字符时,ImGui 内部将字符转换为宽字符字符集时候,采用的 MultiByteToWideChar API 参数不太对&#…...
OpenCV计算摄影学(20)非真实感渲染之增强图像的细节函数detailEnhance()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 此滤波器增强特定图像的细节。 cv::detailEnhance用于增强图像的细节,通过结合空间域和频率域的处理,提升图像中特定细节…...
Android PC 要来了?Android 16 Beta3 出现 Enable desktop experience features 选项
在之前的 《Android 桌面窗口新功能推进》 我们就聊过,Google 就一直在努力改进 Android 的内置桌面模式,例如添加了适当的窗口标题、捕捉窗口的能力、悬停选项、窗口大小调整、最小化支持、app-to-web 等。 比如在搭载 Android 15 QPR 1 Beta 2 的 Pix…...
数据集格式转换——json2txt、xml2txt、txt2json【复制就能用】
秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏地址:YOLO11入门 + 改进涨点——点击即可跳转 欢迎订阅 目录 json2txt脚本 xml2txt txt2json...
Git常用操作之GitLab
Git常用操作之GitLab 小薛博客官网:小薛博客Git常用操作之GitLab官方地址 1、GitLab安装 https://gitlab.cn/install/ 1、Docker安装GitLab https://docs.gitlab.cn/jh/install/docker.html 1、设置卷位置 在设置其他所有内容之前,请配置一个新的…...
【商城实战(33)】解锁版本迭代与更新策略
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
强化学习 - PPO控制无人机
PPO(Proximal Policy Optimization,近端策略优化)是一种强化学习算法,用于训练智能体(无人机)如何在环境中做出决策。它本质上是 策略梯度(Policy Gradient)方法 的一种改进…...
QT 磁盘文件 教程03-创建、删除、复制文件
【1】新建文件 bool CreateFile(QString name){QString fileName name ; //"文件绝对路径名"QFile file(fileName);QFileInfo fileInfo(file);QString fileExtension fileInfo.suffix();if(fileExtension.isEmpty()) {fileName".txt";}file.setFileName…...
Netty基础—NIO的使用简介
1.Buffer缓冲区 (1)Buffer缓冲区的作用 在NIO中,所有的数据都是通过使用Buffer缓冲区来处理的。如果要通过NIO,将数据写到文件和网络或从文件和网络中读取数据,那么就需要使用Buffer缓冲区来进行处理。 (2)Buffer缓冲区的4个核心概念 Buffer缓…...
Matlab 汽车ABS实现模糊pid和pid控制
1、内容简介 Matlab 181-汽车ABS实现模糊pid和pid控制 可以交流、咨询、答疑 2、内容说明 略 实现汽车防抱死制动系统(ABS)的控制算法,通常涉及到传统的PID控制和模糊PID控制两种方法。下面将分别介绍这两种控制策略的基本概念以及如何在M…...
驾驭数据洪流:实时数据分析与流处理技术的革命
驾驭数据洪流:实时数据分析与流处理技术的革命 在现代社会,数据不再是冷冰冰的存储单位,而是实时运转的“生命体”。从电商交易监控、社交媒体互动,到自动驾驶决策,我们正被无数实时数据所包围。与此同时,实时数据分析和流处理技术应运而生,成为解决这一时代难题的关键…...
Muon: An optimizer for hidden layers in neural networks
引言 在深度学习领域,优化算法对模型训练效率和性能起着关键作用。从经典的随机梯度下降 (SGD) 及其动量法,到自适应优化方法 Adam/AdamW 等,一系列优化器大大加速了神经网络的收敛。然而,随着模型规模和数据量的爆炸式增长&…...
网络安全运维应急响应与溯源分析实战案例
在日常运维过程中,网络安全事件时有发生,快速响应和精准溯源是保障业务稳定运行的关键。本文将通过一个实际案例,详细解析从发现问题到溯源定位,再到最终解决的完整流程。 目录 一、事件背景 二、事件发现 1. 监控告警触发 2…...
【VSCODE 插件 可视化】:SVG 编辑插件 SVG Editor
插件下载 svgeditor 创建文件 Windows/Linux 快捷键 Ctrl Shift P 打开VSCODE 命令面板查找 New File With Svg Editor 编辑文件 保存文件 打开文件以继续编辑 CG 选中多个:shift单击没找到横向分布功能无法用键盘微调位置...
Cursor插件市场打不开解决
问题现象: cursor搜索插件的时候提示错误,无法搜索安装插件 error while fetching extensions.failed to fetch 问题原因 cursor默认安装使用的并不是vs code的插件市场,国内网络有时候打不开 解决 修改插件市场地址并重启cursor 打开cur…...
嵌入式开发之STM32学习笔记day06
基于STM32F103C8T6的开发实践——从入门到精通01 1. 引言 STM32系列微控制器是STMicroelectronics推出的一款高性能、低功耗的32位微控制器,广泛应用于嵌入式系统中。STM32F103C8T6是其中非常受欢迎的一款,凭借其强大的性能、丰富的外设接口和低廉的价格…...
K8S学习之基础三十五:k8s之Prometheus部署模式
Prometheus 有多种部署模式,适用于不同的场景和需求。以下是几种常见的部署模式: 1. 单节点部署 这是最简单的部署模式,适用于小型环境或测试环境。 特点: 单个 Prometheus 实例负责所有的数据采集、存储和查询。配置简单&…...
AI驱动的视频字幕提取与翻译工具
青梧字幕是一款基于Whisper技术的AI字幕提取工具,专为视频制作者、翻译人员和自媒体创作者设计。它通过先进的语音识别算法,能够自动从视频文件中提取字幕内容,并支持多种语言和字幕格式,极大地简化了字幕制作流程。 目前暂支持 …...
Android ARouter的详细使用指南
Android ARouter的详细使用指南。我需要先确定用户的基础,可能他们已经有Android开发经验,但对ARouter不太熟悉。首先,我应该介绍ARouter是什么,解决什么问题,比如模块化中的页面跳转问题。然后,需要分步骤…...
【MySQL】MySQL审计工具Audit Plugin安装使用
MySQL审计工具Audit Plugin安装使用 https://www.cnblogs.com/waynechou/p/mysql_audit.html MySQL 5.6 开启审计功能 https://blog.51cto.com/u_15127556/4344503 MySQL之添加日志审计功能 https://blog.csdn.net/weixin_43279032/article/details/105507170 MySQL开启日志记录…...
游戏引擎学习第163天
我们可以在资源处理器中使用库 因为我们的资源处理器并不是游戏的一部分,所以它可以使用库。我说过我不介意让它使用库,而我提到这个的原因是,今天我们确实有一个选择——可以使用库。 生成字体位图的两种方式:求助于 Windows 或…...
JVM常用概念之锁省略
问题 synchronized(同步-重量级锁)会解除所有编译器优化吗? 基础知识 使用当前的 Java 内存模型,未观察到的锁不一定会产生任何内存效应。除其他情况外,这意味着对非共享对象进行同步是徒劳的,因此运行时不必在那里做任何事情。这给编译优…...
用python代码将excel中的数据批量写入Json中的某个字段,生成新的Json文件
需求 需求: 1.将execl文件中的A列赋值给json中的TrackId,B列赋值给json中的OId 要求 execl的每一行,对应json中的每一个OId json 如下: {"List": [{"BatchNumber": "181-{{var}}",// "Bat…...
《我的Python觉醒之路》之转型Python(十五)——控制流
[今天是2025年3月17日,继续复习第一章节、第二章节的内容 ] 《我的Python觉醒之路》之转型Python(十四)——控制流...
