提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
[1、/bin 目录](#1、/bin 目录)
[2、/dev 目录](#2、/dev 目录)
[3、/etc 目录](#3、/etc 目录)
[4、/lib 目录](#4、/lib 目录)
[5、/mnt 目录](#5、/mnt 目录)
[6、/proc 目录](#6、/proc 目录)
[7、/usr 目录](#7、/usr 目录)
[8、/var 目录](#8、/var 目录)
[9、/sbin 目录](#9、/sbin 目录)
[10、/sys 目录](#10、/sys 目录)
前言
前一期正式结束了Linux内核移植的介绍,接下来将介绍linux系统的最后一部分个 rootfs(根文件系统),根文件系统构建好以后就意味着我们已经拥有了一个完整的、可以运行的最小系统。首先先对根文件系列作一个简介。
一、根文件系统简介
根文件系统一般也叫做 rootfs,那么什么叫根文件系统,Linux 中的根文件系统更像是一个文件或者叫做目录,在这个目录里面会有很多的子目录。根目录下和子目录中会有很多的文件,这些文件是 Linux 运行所必须的,比如库、常用的软件和命令、设备文件、配置文件等等。
根文件系统首先是内核启动时所挂载的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。
单独的 Linux 内核是没法正常工作的,必须要搭配根文件系统。
根文件系统是其他文件系统的根,比如我们常用的 ls、mv、ifconfig 等命其实就是一个个小软件,只是这些软件没有图形界面,而是需要输入命令来运行。
本期博客就是来构建自己的跟文件系统,这个根文件系统是满足 Linux 运行的最小根文件系统。
二、Ubuntu的根文件系统为例
这里我们可以先看一下跟文件系统大概有什么内容,以Ubuntu的根文件系统为例:
根文件系统的目录名字为'/',所以输入如下命令就可以进入根目录中:
cd / //进入根目录
如下图所示:

上图中根目录下子目录和文件不少,但是这些都是 Ubuntu 所需要的,其中有很多子目录和文件嵌入式 Linux 是用不到的,所以这里就讲解一些常用的子目录:
三、常用子目录
1、/bin 目录
bin 文件就是可执行文件。所以此目录下存放着系统需要的可执行文件,一般都是一些命令,比如 ls、mv 命令等。此目录下的命令所有客户都可以使用。
2、/dev 目录
dev 是 device 的缩写,所以此目录下的文件都是和设备有关的,此目录下的文件都是设备文件。在 Linux 下一切皆文件,即使是硬件设备,也是以文件的形式存在的
3、/etc 目录
此目录下存放着各种配置文件,大家可以进入 Ubuntu 的 etc 目录看一下,里面的配置文件非常多!如下图:

但是在嵌入式 Linux 下此目录会很简洁。
4、/lib 目录
lib 是 library 的简称,也就是库的意思,因此此目录下存放着 Linux 所必须的库文件。这些库文件是系统、命令和用户编写的应用程序要使用这些库文件。如下图所示:

5、/mnt 目录
临时挂载目录,一般是空目录,可以在此目录下创建空的子目录,比如 /mnt/sd、/mnt/usb,这样就可以将 SD 卡或者 U 盘挂载到 /mnt/sd 或者 /mnt/usb 目录中。如下图所示:

6、/proc 目录
此目录一般是空的,Linux 系统启动以后会将此目录作为 proc 文件系统的挂载点,proc 是一个虚拟文件系统,没有实际的存储设备。proc 里面的文件都是临时存在的,一般用来存储系统运行信息文件。
7、/usr 目录
要注意,usr 不是 user 的缩写,而是 Unix Software Resource 的缩写,也就是 Unix 操作系统软件资源目录,这里有个小知识点,那就是 Linux 一般被称为类 Unix 操作系统,既然是软件资源目录,因此 /usr 目录下也存放着很多软件,一般系统安装完成以后此目录占用的空间最多。如下图所示:

8、/var 目录
此目录存放一些可以改变的数据。
9、/sbin 目录
此目录用户存放一些可执行文件,但是此目录下的文件或者命令只有管理员才能使用,一般用户要管理系统。
10、/sys 目录
系统启动以后此目录作为 sysfs 文件系统的挂载点,sysfs 是一个类似于 proc 文件系统的特殊文件系统,sysfs 也是基于 ram 的文件系统,也就是说它也没有实际的存储设备。此目录是系统设备管理的重要目录,此目录通过一定的组织结构向用户提供详细的内核数据结构信息。
11、/opt
可选的文件、软件存放区,由用户选择将哪些文件或软件放到此目录中。
关于 Linux 的根目录就介绍到这里,接下来的构建根文件系统就是研究如何创建上面这些子目录以及目录中的文件。
总结
本期博客对根文件系列作了一个简介。