1、文件系统里面的几个概念
- 超级块
- 块组描述符表
- 数据块
- 块位图
- inode节点
- inode位图
2、概念理解
(1)超级块
在Linux系统中把磁盘分成一个个的数据块来存储数据,超级块存储整个分区的系统信息,包括 块大小,文件系统版本号,上次mount的时间等等
(2)块组描述符表
整个分区有多少个块组,就有多少个块组描述符,每个块组描述符存储该块组的信息。
例如在这个块组中从哪里开始是inode表,从哪里开始还数据块。
(3)数据块
数据块就是存储数据的,里面存储的是文件的数据。
(4)块位图
块位图也是一个单独的块,它和磁盘上的数据块一一对应,代表每个数据块的空闲状态。
当我们用 df 命令查看磁盘空间大小的速度是比较快的,因为直接访问这个快位图就知道磁盘的空间状态。用du命令的时候速度是比较慢的,因为要遍历目录下的所有文件,来计算空间。
(5)inode节点
当我们用 ls -l来查看文件的详细信息的时候,会看到下面一系列的信息。
total 28
-rwxr--r-- 1 nii nii 7568 7月 13 09:29 a.out
-rwxr--r-- 1 nii nii 734 7月 13 09:29 signalaction.c
-rwxr--r-- 1 nii nii 300 7月 13 08:36 signal.c
-rwxr--r-- 1 nii nii 7588 7月 13 08:41 signal_statua
-rwxr--r-- 1 nii nii 508 7月 13 08:57 signal_statua.c
数据块中存放文件的内容,而文件的一些其他信息,如权限,访问时间、修改时间、文件类型等等存放在inode节点里面。
(6)inode位图
里面存放的也是所有的inode节点的使用情况。
3、文件的硬链接和符号链接的区别
硬链接:
ln命令创建的位硬链接。可以理解为一个指针,系统不为它分配inode节点,里面存放的是索引文件的inode节点。
ln -s 可以创建符号链接。系统为它分配inode节点,存放的是所指向文件的路径。