注:参考一些书上的资料,加上自己的理解,如有错误地方,欢迎指正。
一、文件系统是个抽象的概念,它可以用来存储文件的内容、属性和目录。在unix中将磁盘分成了3个部分。
1、超级块
文件系统中的第一块,用来存放文件系统的本身结构信息。如每个区域大小,磁盘块的使用信息;
2、i-节点表
存放文件的属性,每个文件都有一份i节点,存放在节点表中。表中的每个i节点都通过位置来标识。inode 2位于节点表的第三个位置。
3、数据区
存放文件的内容。
二、创建文件过程
存储文件属性(找一个空的i节点,内核把文件的信息记录其中)——>存储文件内容——>记录分配情况(这也是在i节点中存储)——>添加文件名到目录(新文件名A和节点号n在一起(n,A)添加到目录文件,n是该文件的入口)如下图:
三、两个文件系统的连接
比如在linux系统上插入U盘,用mount命令将其挂载到/mnt上这其实就是一个文件系统挂载到另一个文件系统,此时原来文件系统的那棵树我们称为根文件系统,U盘的那个文件系统加到这个根文件系统上,在内部,内核在根文件系统将/mnt目录作为一个指针,指向U盘的那个文件系统的根,这样两个文件系统就联系起来了,构成了一棵完整的树,如下图