- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux虚拟文件系统.doc
Linux虚拟文件系统虚拟文件系统,简称VFS。系统中所有文件系统不但依赖VFS共存,而且也依靠VFS系统协同工作。程序可以利用标准的Unix系统调用对不同的文件系统,甚至不同介质上的文件系统进行读写操作。 1.通用文件系统接口 VFS使得用户可以直接使用open(),read()和write()这样的系统调用而无需考虑具体文件系统和实际物理介质,这点DOS是不具备的,DOS中任何对非本地文件系统的访问都要依靠特殊工具才能完成。 VFS与块I/O相结合,提供抽象、接口以及交融,使得用户空间的程序调用统一的系统调用访问各种文件,不管文件系统是什么,也不管文件系统位于何种介质,采用命名策略是统一的。 2.文件系统抽象层 VFS可以为应用提供通用接口操作各类文件系统,是因为内核在底层文件系统接口上建立了一个抽象层。这个抽象系统模型,包括了任何文件系统的常用功能集和行为。当然,该模型偏重于Unix风格的文件系统。 内核通过抽象层能够方便、简单地支持各种类型的文件系统,实际文件系统通过编程提供VFS所期望的抽象接口和数据结构。比如用户空间的一个写操作: ret = write(fd, buf, len); write系统调用将buf指针指向的长度为len字节的数据写入文件描述符fd对应的 文件的当前位置。这个系统调用首先调用sys_write()处理,sys_write()函数要找到fd所在的文件系统实际给出的是哪个写操作,然后再 执行该操作。具体文件系统的写方法是文件系统实现的一部分,数据最终写入介质。 3.Unix文件系统 Unix使用了四种和文件系统相关的传统抽象概念:文件、目录项、索引节点和安装点(mount point)。 从本质上讲文件系统是特殊的数据分层存储结构,包含文件、目录和相关控制信息。 文件系统通用操作包含创建、删除和安装等。在Unix中,文件系统采用全局命名空间,挂载到系统根目录下的一个子节点。 Unix文件概念和面向记录的文件系统形(比如OpenVMS的File-11)成鲜明对比,面向记录的文件系统提供更丰富、更结构化的表示,而简单的面向字节流抽象的Unix文件则以简单性和相当的灵活性为代价。 Unix中,目录属于普通文件,它列出包含在其中的所有文件,由于VFS把目录当作文件对待,所以可以对目录执行和文件相同的操作。 Unix系统将文件的信息和文件本身这两个概念加以区分,例如访问控制权限、大小、拥有者、创建时间等。文件相关信息称作文件的元数据,被存储在一个单独的数据结构中,叫做索引节点(inode)。索引节点存储在超级块中。超级块是一种包含文件系统信息的数据结构。 Linux的VFS设计目标就是要保证能与支持或实现了这些概念的文件系统协同工作。 非Unixf风格的文件系统(比如FAT或NTFS),要在Linux上工作,必须经过封装,提供一个符合这些概念的界面。这个封装转换需要在使用现场引入一些特殊处理,这样文件系统仍然能工作,但其带来的开销是很大的。 4.VFS对象及其数据结构 VFS其实采用的是面向对象的设计,内核是纯C开发,用结构体来实现对象,结构体包含数据和操作这些数据的函数指针。 VFS有四个主要对象类型,分别是: 超级块对象:代表一个具体已安装文件系统 索引节点对象:代表一个具体文件 目录项对象:代表一个目录项,是路径的一个组成部分 文件对象:它代表由进程打开的文件 注意,这里的目录项代表的是路径的一个组成部分,可能包含一个普通文件。这不同于目录。Unix中,目录仅是一个普通文件。 每个主要对象中,都包含一个操作对象,这些操作对象描述了内核针对主要对象可以使用的方法: super_operations对象,包含针对特定文件系统调用方法,比如write_inode(),sync_fs等 inode_operations对象,包含create(),link()等; dentry_operations对象,包含d_compare(),d_delete()等 file_operations对象,包含进程针对已打开文件所能调用的方法,如read()和write()等 操作对象作为一个结构体指针来实现,此结构体中包含指向操作其父对象的函数指针。通常来说,可以继承使用VFS通用函数,如果通用函数提供的基本功能无法满足需要,那就必须使用实际文件系统独有方法填充这些函数指针,使其指向文件系统实例。 VFS使用了大量结构体对象,还包括file_system_type描述文件系统及其性能,vfsmount包含安装点相关信息等。 5.超级块对象 各种文件系统都必须实现超级块对象,该对象用于存储特定文件系统信息,通常对应于存放在磁盘特定扇区中的文件系统超级块或者文
您可能关注的文档
最近下载
- 新入职保安培训知识课件.pptx VIP
- Unit5 a cherry, please(课件)译林版(一起)英语一年级上册.pptx
- OEE计算表格(完整工具).xls VIP
- 食品生产企业有害生物风险管理指南.docx VIP
- 《计算机控制系统》课后题答案-刘建昌.pdf VIP
- 2025年医学课件-转变围术期麻醉管理理念推进ERAS加速康复外科建设.pptx VIP
- 加强县级行政事业单位房地资产管理的思考.doc VIP
- 2024人民防空工程常见技术问题及解答.docx VIP
- 人教版鄂教版科学二年级上册二单元《水和空气》大单元教学设计.pdf VIP
- T_GDPAWS 33-2024 城镇污水处理企业应急能力建设规范.docx VIP
有哪些信誉好的足球投注网站
文档评论(0)