linux kernel文件系统数据结构file_system_type

本文详细介绍了Linux内核中文件系统类型表示的数据结构file_system_type。该结构体用于描述不同类型的文件系统,如fat和sysfs等,并通过单链表形式链接起来。文章还解释了各个字段的作用,如get_sb和kill_sb等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                                                                 linux kernel文件系统数据结构file_system_type

      文件系统类型用于表示各种不同的文件系统,如fat, sysfs, proc等等,对于每个不同的文件系统,都以struct file_system_type进行描述,内核将它们以单链表的形式链接起来,其表头由全局变量file_systems表示。

       文件系统类型的 数据结构位:file_system_type

      此结构体定义了文件系统的类型,每种文件系统都必须定义一个此结构体并通过register_filesystem进行注册。

struct file_system_type {

     //文件系统的名字

     const char *name;

    //文件系统类型标志的bitmap

     int fs_flags;

    //在安装文件时,会调用get_sb()从磁盘中读取超级块。

     int (*get_sb) (struct file_system_type *, int,

                const char *, void *, struct vfsmount *);

     //卸载文件系统时,会调用此函数做一些清理工作。

     void (*kill_sb) (struct super_block *);

     //指向拥有这个结构的模块,如果一个文件系统被编译进内核,则该字段为NULL

     struct module *owner;

      //形成文件系统类型链表

     struct file_system_type * next;

      //同一种文件类型的超级块形成一个链表,fs_supers是这个链表的头

     struct list_head fs_supers;

      //相关锁

     struct lock_class_key s_lock_key;

     struct lock_class_key s_umount_key;

};

       不同类型的文件系统通过next字段形成一个链表,同一种文件系统类型的超级块通过s_instances字段连接在一起,并挂入fs_supers链表中。所有的vfsmount通过mnt_list字段形成一个链表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值