一. 根文件系统简介
根文件系统也叫做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  的根目录就介绍到这里,接下来的构建根文件系统就是研究如何创建上面这些子目  
  录以及子目录中的文件。