有道云笔记地址:
详情看这里链接,记录太多,就不一一排版了。
一、Linux 文件系统简介
根,可以理解为基础的意思。根文件系统是一种最基础的文件系统。
我们知道在 Windows 系统下,磁盘被划分为 C、 D、 E 等各个盘,
同理, Linux 系统也可以将磁盘或 Flash 等存储设备划分为若干个分区,在不同的分区存放不同类型的 文件,比如我们 A8 开发板的 Nor Flash 中:在某个分区存放 uboot 的可执行文件;在某个分区存放内核映像文件,在另一分区存放根文件系统映像文件等。与 Windows 的 C 盘类似, Linux 也需要在一个分区上存放系统启动的必要文件,
比如内核启动运行后的第一个程序( init进程)、用于挂接文件系统的脚本、给用户提供操作界面的 shell 程序,应用程序所要依赖的库等,这些必要、基本文件的集合称为根文件系统,它们存放在一个分区中。
Linux 系统启动后首先会挂载这个分区,这称为挂载( mount)根文件系统。
其他分区上的所有目录、文件的集合, 称为文件系统。因为其他的文件系统还没用到,所以在我们的 A8 开发板中只有根文件系统。
为什么需要根文件系统? |
(4)shell命令程序在根文件系统上。譬如ls、cd等命令
总结:一套linux体系,只有内核本身是不能工作的,必须要rootfs(上的etc目录下的配置文件、/bin /sbin等目录下的shell命令,还有/lib目录下的库文件等···)相配合才能工作。
在嵌入式Linux应用中,主要的存储设备为 RAM(DRAM, SDRAM)和ROM(常采用FLASH存储器),
常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。
二、Linux根文件系统目录结构
从前面的讲解,我们知道文件系统是一个文件与目录的集合,那么根文件系统下的目录又有哪些呢?目录里的文件又有什么作用呢?这节提及的目录都是我们待会移植根文件系统时要用到的目录,为你在移植前先热热身。
(1) /bin 目录 该目录下存放所有用户(包括系统管理员和一般用户)都可以使用的、基本 的命令,里面常用的命令有: ls、 cd、 mkdir、 rm、 kill、 ps、 cp、 mv、 cat、 chmod 等。
(2) /sbin 目录 该目录下存放系统命令,即只有管理员能够使用的命令,系统命令还可以存 放/usr/sbin、/usr/local/sbin 目录下。/sbin 目录中存放的是基本的系统命令, 它们用于启动系统、修复系统等。它里面常用的命令有: shutdown、reboot、fdisk、 fsck 等。不是急迫需要使用的系统命令存放在/usr/sbin 目录下。
(3) /dev 目录 该目录下存放的是设备文件。设备文件是 Linux 中特有的文件类型,在 Linux 系统下,以文件的方式访问各种外设,即通过读写某个设备文件操作某个具体硬件。比如通过“ /dev/ttySAC0”文件可以操作串口 0,通过“ /dev/mtdblock0” 可以访问 MTD 设备( Nand Flash)的第 0 个分区。
设备文件有两种:字符设备文件和块设备文件。在 PC 上用命令:
ls -l /dev/tty0 /dev/hdc |
其中字母“ b”、“ c”表示这是一个块设备文件或字符设备文件;“ 22, 0”、“ 4, 0”表示设备文件的主、次设备号;主设备号用来表示这是哪类设备,次设备号 用来表示这是这类设备中的哪个。
(4) /etc 目录 该目录下存放各种配置文件。对于 PC 机上的 Linux 系统, /etc 里的目录和 文件非常多。这些目录、文件都是可选的,它们依赖于系统中所拥有的应用程序, 依赖于这些程序是否需要配置文件。