文件系统--文件系统的架构

    VFS是具体文件系统的抽象,依靠超级块、inode、dentry以及文件这些结构来发挥作用,文件系统的架构就体现在这些结构的使用方式中。


1、超级块作用分析

    1)

    2)所有的dentry都指向一个dentry_hashtable

        dentry_hashtable是一个树组,每一个树组成员都是hash链表数据结构。

        这里是指内存中的dentry;---如果某个文件已经被打开过,内存中就有该文件的dentry结构,且该dentry链接到dentry_hashtable树组的某个hash链表头。  后续再访问该文件,直接从hash链表里面找到,避免再次读取硬盘。这是dentry的 cache 概念。

    3)/home/mnt目录指向一个挂载文件的系统

        dentry的d_mounted成员判断目录不是一个普通的目录,而是一个文件系统。不为0:该dentry是个挂载点,有文件系统挂载,需要特殊处理。

        如图所示,挂载过来的文件系统本身是一个dentry树,有自己的根目录,两个dentry树之间没有链接关系

    如何找到挂载的文件系统在哪里?

    新的数据结构vfsmount,  当文件系统被挂载的时候,它的vfsmount结构就被链接到内核的一个全局链表------mount_hashtable数据链表。

    mount_hashtable是一个树组,每个成员是一个hash链表。  上文的例子有两个vfsmount,cj文件所在的文件系统vfsmount被链接到mount_hashtable。当发现mnt是一个特殊的目录时,从mount_hashtable树组找到hash链表头,再遍历整个hash链表,就能找到cj文件所在文件系统的vfsmount,然后mnt目录的dentry被替换,

2、dentry作用分析


3、inode作用分析

     内核提供hash链表树组inode_hashtable,所有的inode结构都需要链接到树组里面的某个hash链表。【与hash链表树组dentry_hashtable类似】

4、文件作用分析


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值