加油,成为一名出色的嵌入式工程师。

一、什么是嵌入式?

今天之前,通过我以前对嵌入式的接触与认识,对嵌入式的认识就是通过Linux操作系统来驱动一些硬件。也就是用一句话介绍嵌入式所说“用软件驱动硬件”。

在今天的学习,我知道了IEEE对嵌入式的定义——IEEE: “Device used to control, monitor, or assist the operation of equipment,machinery or plants”.

总的来说嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

应用也就是我要开发这个的目的,主要是为了来完成什么任务;而计算机技术又分为硬件和软件。硬件部分又CPU、存储器、控制器、输入设备、输出设备。软件主要是嵌入式操作系统。相比于通用计算机,嵌入式更像是为了某项任务而量身定做。

嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。包含有计算机,但又不是通用计算机的计算机应用系统。

二、Linux系统怎么来的?

1、操作系统发展简史

  1. 1946 年诞生第一台计算机 ENIAC。
  2. 1969 年开发出UNIX操作系统,最初用 B 语言编写;之后 C 语言被创造出来,并用 C 语言重写 UNIX。早期 UNIX v6 是闭源的。
  3. 开源理念兴起:
    • GNU 组织:口号GNU is not UNIX!,开源开发了很多工具,例如gcc编译器、EMACS 编辑器,但缺少操作系统内核
    • Minix:小型类 Unix 系统。
    • 林纳斯(Linus)参考 Minix,开发出Linux 内核,采用开源协作开发模式。

完整的操作系统 = GNU 工具软件 + Linux 内核,常叫 GNU/Linux。 Android、鸿蒙底层都使用 Linux 内核。

2、闭源系统 vs 开源系统

  • Windows / Mac OS:闭源,需要收费,源代码不公开。
  • Linux:开源,免费使用,需要遵守开源协议。

3、Ubuntu 和 Linux 内核的核心关系(重点)

  • Linux:仅仅指Linux 内核,是操作系统最核心部分,负责管理硬件、进程、内存。
  • Ubuntu(乌班图):属于Linux 发行版

公式:Linux 内核 + GNU 工具 + 桌面图形系统 + 各类应用软件 = Ubuntu 操作系统(iso 镜像)

简单一句话:Linux 内核是 Ubuntu 的心脏,Ubuntu 是打包好、可以直接安装使用的一套完整操作系统

4、其他常见 Linux 发行版

  • RedHat、CentOS、Kali(偏向网络安全运维)

5、Ubuntu 版本规则

  • 每年发布 2 个版本:4 月、10 月
  • 每 2 年推出LTS 长期稳定支持版

三、Linux入门学习总结

1.Linux 基础概念

1. 命令的基本格式。Linux 命令遵循统一格式:命令 [选项] [参数],命令、选项、参数之间至少有一个空格。例如 ls -a / 中,ls 是命令,-a 是选项,/ 是参数。

2. 目录与文件系统。Linux 中“目录”就是 Windows 下的“文件夹”。两者的硬盘管理方式不同:Windows 每个盘符(C 盘、D 盘…)各是一棵树;而 Linux 整个系统只有一棵“倒着的树”,所有路径都挂在根目录 / 下面。

路径中第一个 / 表示所有路径的起点(根目录),后续的 / 都只是目录分隔符。例如 /home/linux 表示“根目录下的 home 目录下的 linux 目录”,也就是当前用户 linux 的主目录(家目录)。

3. 用户主目录与 ~~ 代表用户主目录,对当前用户 linux 来说就是 /home/linux;直接输入 cd 默认效果就是“回家”,回到主目录。

4. 存储单位换算。1 Byte = 8 个二进制位(bit);1024 Byte = 1 KB;1024 KB = 1 MB;1024 MB = 1 GB;1024 GB = 1 TB。电脑硬盘常用 TB 计量,内存常用 GB 计量。

5. 用户权限与 sudo。普通用户只在自己家目录下拥有最大权限;一旦出了家目录,进行创建、修改等操作就需要超级用户权限,可用 sudo 临时切换为超级用户(有时效)。

6. 虚拟机使用建议。虚拟机不用时建议“挂起”而不是关机,下次使用时可以直接恢复。

2.常用命令

本节课共学习 9 个常用命令。

表1 常用命令速查表

命令

功能

常用形式与示例

pwd

打印当前工作目录

pwd → 显示 /home/linux

ls

查看指定目录下的内容

ls /(看根目录);ls(看当前目录);ls -a(含隐藏文件,名字以 . 开头);ls -l(详细信息);ls -lh(大小换算为 KB/MB/GB)

cd

切换目录

cd 目录名cd ~ 或直接 cd(回主目录);cd .(当前目录);cd ..(上一级);cd -(上一次操作的目录)

touch

创建空白文件

touch 123.txt(当前目录);touch /home/linux/123.txt(指定路径)

mkdir

创建目录

mkdir abc(在当前位置创建目录 abc)

cp

复制文件/目录

cp 源文件 目标文件;目标可写成目录名(复制到该目录)或“目录名/文件名”;复制目录需加 -r(递归)

mv

移动/重命名

mv 源 目标;移动后源文件不存在(对比 cp),常用来重命名

rm

删除

rm 1.txt(删普通文件);rm 123dir -r(删目录需加 -r)

cat

查看文件内容

cat 文件名

ls -l 查看详细信息时,输出从左到右依次为:文件类型+权限、硬链接数、所有者名字、所属组、文件大小(字节)、文件最后被修改的时间、文件名。以 -rw-rw-r-- 1 linux linux 0 9月14 14:07 123.txt 为例:

表2 ls -l 输出字段解读

字段

含义

示例值

-rw-rw-r--

文件类型+权限

第一个字符 - 表示普通文件,后 9 位是权限

1

硬链接数

1

linux

所有者名字

linux

linux

所属组

linux

0

文件大小(字节)

0 字节

9月14 14:07

文件最后被修改的时间

9月14 14:07

123.txt

文件名

123.txt

路径分为两种:相对路径形式上看不以 / 开头,以当前位置为参考起点;绝对路径以 / 开头,以根目录为参考起点。例如 touch 123.txt 用的是相对路径(创建在当前目录),而 touch /123.txt 用的是绝对路径(创建在根目录下)。

3.vi/vim 编辑器

vi/vim 是 Linux 下类似 Windows 记事本的文本编辑工具,功能更强大。它有三种模式:命令模式(打开文件后默认进入,此模式下不能编辑文字)、插入模式(可编辑文字)、底行模式(执行保存、退出等命令)。

图2 vi/vim 三种模式转换示意图

基本操作流程:vi 文件名 进入 vi(命令模式)→ 按 i 进入插入模式 → 编辑文字 → 按 ESC 回到命令模式 → 按 shift+: 进入底行模式 → 输入命令回车。底行模式常用命令:w 保存、q 退出、wq 保存并退出、wq! 强制保存退出、q! 强制退出(不保存),其中 ! 表示强制操作。

复制与剪切(均在命令模式下):yy 复制光标所在行,配合 p 粘贴;myy 复制从光标开始的 m 行,np 粘贴 n 份。dd 剪切(删除)光标所在行,配合 p 粘贴;mdd 剪切 m 行,np 粘贴 n 份。

删除:dd 删除一行;ndd 删除 n 行;gg 来到第 1 行;G(shift+g)来到最后一行;gg+d+G 删除全部内容。

选中操作:按 shift+v 进入行选中(按一下 y 复制、按一下 d 删除,配合 p 粘贴);按 ctrl+v 进入块选中,同样用 y/d/p 操作。

撤销与反撤销:u 撤销上一步操作;ctrl+r 反撤销。

4.Linux 下 C 语言编程流程

Windows 下常用 dev C++ 这类 IDE(集成开发环境)完成写代码、编译、运行、调试;Linux 下则用四个独立工具分步完成:

1. 编辑代码:vi/vim。例如 vi hello.c 打开(或新建)源文件进行编辑。

2. 编译代码:gcc(GNU 的 C 语言编译器)。例如 gcc hello.c,生成的可执行文件默认叫 a.out

3. 运行代码:./a.out./ 表示当前目录,即运行当前目录下的可执行文件 a.out。

4. 调试代码:gdb(调试工具)。


总结

本次课程我系统学习了嵌入式行业认知、Linux发展史、基础命令操作及Linux下C语言开发相关知识,收获颇丰,也对嵌入式行业有了全新、清晰的认知。

当下AI快速迭代,多数行业初级岗位竞争激烈甚至被替代,而嵌入式作为软硬件结合、用软件控制硬件的核心技术方向,应用场景广泛,涵盖扫地机器人、人形机器人、物理AI等领域,就业稳定性更高。嵌入式系统是以应用为中心、计算机技术为基础,软硬件可裁剪,对功耗、体积、成本、可靠性有严格要求的专用系统。同时我明确了嵌入式完整学习路线,也确立了自主实操、合理借助AI辅助学习的学习理念。

课程中我了解了Linux的发展历程,区别于闭源收费的Windows,Linux开源免费、适配性极强,安卓、鸿蒙系统底层均基于Linux内核。Ubuntu是主流Linux发行版,依靠VMware虚拟机即可搭建开发环境,满足嵌入式开发需求。

实操方面,我熟练掌握了Linux基础命令,熟悉pwd、ls、cd、touch、mkdir、cp、mv、rm等常用指令,分清了绝对路径与相对路径的区别,掌握sudo临时提权的使用场景。同时掌握了vi/vim编辑器的三种工作模式,熟练运用复制、剪切、粘贴、撤销等操作,了解了保存退出等基础底行命令。

最后,我掌握了Linux环境下C语言开发流程,即vim写代码、gcc编译、终端运行、gdb调试。本次学习夯实了嵌入式入门基础,后续我会多加实操练习,巩固命令操作与开发技巧,稳步推进后续嵌入式深度学习。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐