根文件系统简介

一.  根文件系统简介

根文件系统也叫做rootfs。大家学习STM32的W25Q256、SD卡的时候,接触过 FATFS文件系统。Rootfs是否 ?= FATFS。Rootfs文件系统不同于 FATFS。

Linux内核源码 /fs目录下就存放了类似FATFS系统的很多不同格式的文件系统。所以,FATFS这类的文件系统属于Linux内核的一部分,属于软件代码。而前面 Linux内核镜像zImage我们已经移植到开发板上了。

二.  根文件系统简介

1.   ROOTFS是什么?

根文件系统 = “根”+ “文件” + “系统”。

根文件系统就是一堆的文件、比如软件、配置文件等,这些文件是Linux运行所必须的,将他们组合在一起就构成了跟文件系统。

根文件系统就是一个“文件夹”,此“文件夹”有很多个文件,这些文件是linux运行所必须的,但是无法放到内核里面去的。比如命令、库、配置文件等等。所有这些软件需要我们自己构建。

"/" 就是 Linux 根文件系统的根目录。

2.  根文件系统的大体内容

在构建根文件系统之前,我们先来看一下根文件系统里面大概都有些什么内容,以 Ubuntu 为例。

根文件系统的目录名字为 ‘/’,没看错就是一个斜杠,输入如下命令就可以进入根目录中:

wangtian@wangtian-virtual-machine:~$ cd /
wangtian@wangtian-virtual-machine:/$ ls
bin    dev   lib    libx32      mnt   root  snap      sys  var
boot   etc   lib32  lost+found  opt   run   srv       tmp
cdrom  home  lib64  media       proc  sbin  swapfile  usr
wangtian@wangtian-virtual-machine:/$ 

从上面可以看出,根目录下子目录和文件不少,但是这些都是 Ubuntu 所需要的,其中有很多子目 录和文件我们嵌入式 Linux 是用不到的,所以这里就讲解一些常用的子目录。

(1)   /bin 目录

看到“ bin ”大家应该能想到 bin 文件, bin 文件就是可执行文件。所以此目录下存放着系统
需要的可执行文件,一般都是一些命令,比如 ls mv 等命令。此目录下的命令所有的客户都可
以使用

(2)   /dev 目录

dev device 的缩写,所以此目录下的文件都是和设备有关的,此目录下的文件都是设备
文件。在 Linux 下一切皆文件,即使是硬件设备,也是以文件的形式存在的,比如
/dev/ttymxc0(I.MX6ULL 根目录会有此文件 ) 就表示 I.MX6ULL 的串口 0 ,我们要想通过串口 0
发送或者接收数据就要操作文件 /dev/ttymxc0 ,通过对文件 /dev/ttymxc0 的读写操作来实现串口
0 的数据收发。

(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 操作系统,苹果的 MacOS
也是类 Unix 操作系统。关于 Linux Unix 操作系统的渊源大家可以直接在网上找 Linux 的发
展历史来看。既然是软件资源目录,因此 /usr 目录下也存放着很多软件,一般系统安装完成以
后此目录占用的空间最多。

(8)  /var 目录

此目录存放一些可以改变的数据。

(9)  /sbin 目录

此目录页用户存放一些可执行文件,但是此目录下的文件或者说命令只有管理员才能使用,
主要用户系统管理。

(10)  /sys 目录

系统启动以后此目录作为 sysfs 文件系统的挂载点, sysfs 是一个类似于 proc 文件系统的特
殊文件系统, sysfs 也是基于 ram 的文件系统,也就是说它也没有实际的存储设备。此目录是系
统设备管理的重要目录,此目录通过一定的组织结构向用户提供详细的内核数据结构信息。

(11)  /opt

可选的文件、软件存放区,由用户选择将哪些文件或软件放到此目录中。
关于 Linux 的根目录就介绍到这里,接下来的构建根文件系统就是研究如何创建上面这些子目
录以及子目录中的文件。

你可能感兴趣的:(系统移植篇,linux,arm开发)