i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、
【公众号】迅为电子
【粉丝群】258811263(加群获取驱动文档+例程)
第十四章 Linux目录结构讲解
本章内容对应视频讲解链接(在线观看):
Linux目录结构讲解 → https://www.bilibili.com/video/BV1M7411m7wT?p=14
因为 linux 文件系统对文件的管理主要包括两个方面,第一个方面是文件的本身,第二个就是目录管理。我们从目录管理入手,会更直观的理解 linux 的目录结构。
14.1 linux目录结构
Linux 整个文件系统是以“ / ”目录开始,根目录是最顶层,前面讲根目录和家目录概念的时候已经提到了。它下边包括众多的目录,这些目录又称为子目录,子目录下边又包含更多的目录,它形成了一个像树一样的结构,大家可以把它想像成一个倒挂的树,就是从树根开始往下,它的枝叶是一支一支的,也就是一级一级的。
Linux 整个文件系统是以“/”目录开始,在 linux 中是没有 C盘 D盘 E盘 这个概念的。我们打开 ubuntu 看下类似于树的形状的一个结构。
我们打开文件管理,从最顶层开始,点击 computer ,这就是我们 ubuntu 的最顶层,左上角有一个 “/” ,“/” 就是根目录,在这个目录下,我们可以进到下边任意一个子目录,比如说作者点击 home 这个文件夹,然后再点击 topeet 这个文件夹,下边有很多的子文件夹,这些子文件夹就好比大树的枝干,一层一层的往下延伸。
这个结构是虚拟出来的,没有任何的限制,它只是一个虚拟的概念。所以说从理论上来讲,linux目录结构可以是随意安排的,就是说我想往哪延伸就往哪延伸,没有任何的限制,但是如果我们所有的人都这样做,不同的人想法不同,那么我们很容易就出现混乱了。
为了解决不同的开发人员之间不统一的问题,研究出层次标准,也就是文件层次标准,简称 FHS ,全称 filesystem hierarch standard 。FHS 定义了两层规范:第一层是 / 目录下面文件夹要存放什么文件,比如说 /etc 下面就应该放配置文件,bin 或sbin 下边就应该放可执行文件。第二层规范是针对 linux 下 /usr 和 /var 这两个目录的子目录来定义的。比如 /usr/share 下面就应该放共享数据文件。FHS 仅仅给出了最上层顶目录以及子层 /usr 和 share 要存放的数据,我们在其他的子目录层,我们就可以随意的来配置了,
14.2 linux 根目录
FHS对linux根文件系统的基本目录都做了一些比较详细的规定,比如说哪些文件夹要放置哪些文件。
作者现在进到了ubuntu的根目录下,各个文件的规定如下:
bin | 系统启动时需要的可执行命令,大部分普通用户只有可执行权限没有读写权限,只有root用户有读写权限。 |
boot | 用来存放BootLoader相关文件,千万不要乱动,否则无法进入系统。 |
cdrom | 光盘目录 |
dev | 设备驱动文件夹 |
etc | 系统配置文件夹,这个文件夹的权限很高,只有root用户才可以修改这个文件夹 |
home | 家目录,普通用户都有一个以自己名字命名的文件夹存放在这个目录里面 |
lib | 各种程序所需要的库文件和系统可以正常运行的支持文件都存放在这个文件夹里面 |
lib64 | 64位支持库 |
media | 用来存放媒体信息的文件 |
mnt | 可以把设备挂载在这个文件夹下,比如U盘 |
opt | 可以用来存放第三方文件 |
proc | 用来存放系统信息和进程信息 |
root | root 用户的家目录 |
run | 保存了系统从最开始到现在的系统信息 |
sbin | 存放系统管理员的可执行命令,里面也是二进制文件 |
snap | snap 应用程序框架的程序文件 |
srv | 用来存放系统存储服务相关数据 |
sys | 系统的设备和文件层次信息 |
temp | 存放临时文件 |
usr | 存放和用户有关的文件 |
var | 存放一直在变化的文件 |
这个就是在 FHS 规范的建议下, linux 根目录下各个文件的规定。尽管 FHS 这个不是强制的标准,但是作为一个开发人员,我们还是要遵守这个标准的,比如说后面我自己定义了一个命令,就要把这个命令放到 bin 文件下,不然别人接手你的项目就容易出现混乱。