1.文件系统是什么?
文件系统就是一套用于定义文件的命名和组织的规范,根本目的时便于对文件进行查询和存取。
2.在Linux早期,文件系统是怎么设计的?
与内核整合在一起,缺点是:只能识别一种类型格式的文件,兼容性极差。
3.后期Linux采用了什么以支持不同种类的文件系统?
Linux采用了虚拟文件系统VFS来屏蔽下层各种不同类型文件系统的实现细节和差异。
4.VFS处于哪里?
处于系统调用和具体的文件系统的中间。
5.VFS的数据结构有什么?
- 超级块对象:存放已安装的文件系统的相关信息
- 索引结点对象:存放具体文件的一般信息,一个索引结点代表一个文件,只有在访问文件的时候才会生成。存放文件的权限与属性
- 文件对象:文件对象并不是真正的文件,代表的是进程打开的文件,存放进程与实际文件交互的相关信息。
- 目录项对象:目录项对象也不是真正的目录,存放着路径等与文件相链接的信息。
真正的文件存放在data block中。
6.VFS支持哪些文件系统
- 硬盘文件系统
- 网络文件系统
- 特殊文件系统
7.VFS引入了一个什么样的模型?
引入了一个通用的文件模型,这个模型以面向对象的概念设计了许多对象用于将物理实际的文件系统
抽象成虚拟的文件系统
8.Linux文件系统从安装到使用的流程
就单个文件系统而言,在文件系统安装时,创建超级块对象;沿树查找文件时,总是首先从初识目录的中查找匹配的目录项,以便获取相应的索引节点,然后读取索引节点的目录文件,转化为dentry对象,再检查匹配的目录项,反复执行以上过程,直至找到对应的文件的索引节点,并创建索引节点对象。