linux文件系统三 VFS数据结构体剖析

本文详细介绍了Linux文件系统中的关键数据结构,包括超级块对象struct super_block *sb、索引节点对象struct inode *inode、文件对象struct file *file以及目录项struct dentry。这些结构体构成了Linux内核与文件系统交互的基础。文章阐述了它们各自的作用、存储的信息以及操作函数接口,并探讨了它们之间的关系,展示了如何在内存中建立dentry和inode结构,连接到进程结构中,实现VFS接口的连接。
摘要由CSDN通过智能技术生成

一、结构体种类:

1、超级块对象struct super_block *sb:  

  超级块代表了整个文件系统,超级块是文件系统的控制块,有整个文件系统信息,一个文件系统所有的inode

都要连接到超级块上,可以说,一个超级块就代表了一个文件系统。每次一个实际的文件系统被安装时,内核会从

磁盘的特定位置读取一些控制信息来填充内存中的超级块对象。super_block定义在include/linux/fs.h里:

struct super_block {
	struct list_head	s_list;		    /*指向超级块链表的指针*/
	unsigned char		s_blocksize_bits;   /*文件系统的块大小的位数*/
	unsigned long		s_blocksize;        /*文件系统的块大小*/
	loff_t			s_maxbytes;	    /* 最大文件大小 */
	struct file_system_type	*s_type;           /*文件系统类型*/
	const struct super_operations	*s_op;     /*super_block的操作函数集合*/
	const struct dquot_operations	*dq_op;    /*文件系统的限额操作函数集合*/

	unsigned long		s_flags;            /*文件系统的超级块的状态位*/  
	struct dentry		*s_root;            /*指向根目录的dentry结构体*/
	int			s_count;            /*引用计数*/
	char s_id[32];				    /* 文件系统的名字 */
	void 			*s_fs_info;	    /* 文件系统的私有信息指针 */
	struct list
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值