Linux-VFS(虚拟文件系统).pptVIP

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux-VFS(虚拟文件系统)

Linux VFS Actions Microelectronics Co., Ltd. Agenda VFS 框图 VFS 类Unix操作系统总共有5种标准文件类型: 1).普通文件 2).目录文件 3).符合链接文件 4).设备文件 5).管道文件 VFS的其中一个重要作用是将对设备驱动的访问,转换为对文件的访问(设备节点文件) 通用文件模型对象-超级块对象 超级块对象(superblock object): 存放已安装文件系统的有关信息. 通常对应于放在磁盘上的文件系统控制块(filesystem control block),每挂载一个文件系统 对应一个超级块对象 struct super_block { … unsigned long s_blocksize;//块设备的最写读取单位,如512 字节 const struct super_operations *s_op; struct dentry *s_root; struct list_head s_inodes; /* all inodes */ struct list_head s_dirty; /* dirty inodes */ struct block_device *s_bdev; void *s_fs_info; /* Filesystem private info */ }; struct super_operations { struct inode *(*alloc_inode)(struct super_block *sb);//分配inode 索引节点 void (*dirty_inode) (struct inode *);//标志索引节点为脏 int (*write_inode) (struct inode *, int);//写索引节点,对于fat 文件系统是写 目录项 void (*write_super) (struct super_block *);//写超级块, 对于fat 文件系统是fat的簇表信息 } 通用文件模型对象-索引节点对象(inode) 索引节点对象(inode object): 存放关于具体文件的一般信息. 通常对应于存放在磁盘上的文件控制块(file control block). 每个索引节点对象都有一个索引节点号,这个节点号唯一地标识文件系统中的文件 索引节点对文件(或者目录)是唯一的,并且随文件的存在而存在. struct inode { dev_t i_rdev;//若为设备文件的索引节点,记录主次设备号 loff_t i_size;//文件大小 struct timespec i_atime;// 文件访问时间 struct timespec i_mtime; struct timespec i_ctime; unsigned int i_blkbits; blkcnt_t i_blocks; umode_t i_mode;//访问模式,如读,写 const struct inode_operations *i_op;//索引节点文件操作 const struct file_operations *i_fop; //文件对象(file object)操作 struct address_space *i_mapping;//高速缓存的核心数据结构体,对块设备的读写操作都放在该结构体里面 } 索引节点对象(inode) 如对于fat 格式, inode节点 会有目录或者文件的首簇号 位置. struct inode_operations { int (*create) (struct inode *,struct dentry *,int, struct nameidata *);//创建文件 int (*mkdir) (struct inode *,struct dentry *,int);//创建目录 int (*rmdir) (struct inode *,struct dentry *);//删除目录 int (*mknod) (struct inode *,struct dentry *,int,dev_t);//创建节点文件 int (*rename) (struct inode *, struct dentry *, //重命名文件 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);//查找目录 } //高速缓存的核心数据结构体,对块设备的读写操作都放在该结构体里面 struct

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档