LINUX_VFS精华版精选.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VFS的“读文件”内部工作过程图 应用程序通过READ系统调用进入内核 参数:文件句柄,读字节数,目标地址 ↓ 计算应读盘块号 ↓ * 根据INODE查该块已在内存(文件CACHE)否,否则根据文件操作表调用相应类型FS的READ子程序去读盘上该块入CACHE ↓ 将所需要的字节数从CACHE读入AP空间 ↓ 计算还要读下一块否,是则至*处,否则成功返回. 单类型FS读文件过程图 单类型FS读文件过程要点简忆 CACHE必要性: AP非整块需要, 重复读写同一块 3.3 VFS源码文件简介(基于UBUNTU) (表中所有.H文件在/USR/SRC/LINUX/INCLUDE/LINUX下, 所有.C文件在/SR/SRC/LINUC/FS下) *.c 文件系统所有源码(包括VFS和具体类型FS) fs.h 活动I结点struct inode 进程打开文件表struct file 文件系统类型struct file_system_type 内存超级块对象struct super_block 文件对象操作表struct file_operations I结点对象操作表struct inode_operations 超级块对象操作表struct super_operations dcache.h 系统打开文件表struct dentry 目录项对象操作表struct dentry_operations fs_struct.h struct fs_struct mount.h 文件系统安装表Struct vfsmount sched.h 进程表struct task_struct(指向进程打开文件表) 4. VFS小结 VFS 3W关键字小结:单多类型FS,FS类型无关与相关,OO与对象操作表, 其他关键字:代码(FS类型)与数据(FS实例),外存数据与内存数据,工作过程与数据结构等 VFS、单类型FS与具体类型FS的比较式小结:见下页 关于VFS的其他小结: 在内存数据结构的内容和格式上,虽然理论上应该是面向所有具体类型FS而通用的,但实际偏倾向于LINUX/UNIX。 运用面向对象思想,但未用面向对象语言 对VFS的理解要点:与单类型FS对比 VFS、单类型FS与具体类型FS的比较式小结 概念对比与生存周期对比与小结: VFS只有代码和内存数据,在外存不存在,开机时产生,关机后不再存在。 单类型FS和具体类型FS既可能指代码,也可能指外存数据(盘卷实体)。具体类型FS既可能对单类型FS而言,也可能指多类型FS而言。 FS的含义可能指以上所有内容中一个或全体,依上下文而定。 功能对比:VFS处理所有FS类型无关的操作和数据(大部分内存数据与操作),具体类型FS处理所有FS类型相关的数据(所有外存数据与操作,及少量内存数据与操作) 工作过程对比:在VFS所有过程图中, 所有读写盘操作都需调用具体类型FS 这时的调用方式是与单类型FS不同之处 所有FS类型无关的操作和数据(大部分内存数据与操作),原来由具体类型FS完成,现由VFS完成。但过程与具体类型FS基本类似。 数据结构对比: VFS内存数据结构内容源自三处:来自外存的数据(即与外存有对应的数据,分为类型无关和类型相关),原来在外存不存在的数据(即与外存无对应的数据,包括当前使用信息等) VFS数据结构比具体类型FS多四张操作表和一张类型注册表。 VFS数据结构与单类型FS相同之处:五张表(安装表,打开表, 请多提宝贵意见! 谢谢! * * 例如复制EXT文件至NTFS。 * 以上我们简单解释了VFS的概念。这只是一个概述。要对以上概念解释有真正透彻深入的理解,须等到学完WHY和HOW之后。 * 但是实际VFS工作起来没有这么简单,因为/d1/f1可能存在安装点和链接,所以同一个路径名上可能存在多个不同类型FS,所以不能一次交给具体类型FS。 * 下面我们就来详细看这三个因素导致的VFS实际结构和过程。 * 这六项可分两大项,每大项里有三小项。前三项入‘VFS下的FS安装“大项,后三项入‘单类型FS下的FS安装原理简忆及与VFS对比“大项。 * 这六项可分两大项,每大项里有三小项。前三项入‘VFS下的FS安装“大项,后三项入‘单类型FS下的FS安装原理简忆及与VFS对比“大项。 * 函数调用关系图我画在李231上了。 * * * 进程打开文件表STRUCT FILE重点标释 STRUCT FILE { STRUCT PATH F_PATH; CONST STRUCT FILE_OPERATIONS *F_OP; ATOMIC_T F_COUNT; UNSIGNED INT F_FLAGS; MODE_T F_MODE; LOFF_T F_PO

文档评论(0)

2518887 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档