- 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的发展,人们逐渐认识到文件是一种通用的抽象手段,文件系统是一种定义良好的操作接口。除了可以表示存储在块设备中的真实实体之外,还可以用文件描述动态生成的信息,如内核中各子系统的状态等。 这类动态生成的文件可以称为虚文件,用于管理虚文件的系统可以称为虚文件系统。将虚文件系统插入到VFS框架之后,用户可以用常规的文件操作接口查看、修改虚文件,进而查看内核的状态、修改内核的参数等。为此Linux开发了多种不需要物理块设备支持的虚文件系统,如proc、sysfs等,极大地提高了内核的透明度和管理质量。 在近期的发展中,开发者们开始借助虚文件系统的管理机制来管理Linux的其它子系统,如管道、消息队列、共享内存等。这种纯粹在内核中使用、用户无法看到的虚文件系统可称为伪文件系统,如pipefs、mqueue、shm等。 从虚拟文件系统的角度看,不管文件系统能否为用户所见,不管其信息是否驻留在物理块设备之上,只要实现了VFS的下层接口,它就是一个物理文件系统。 除了用于特殊目的的伪文件系统和虚文件系统之外,主流的物理文件系统都建立在块设备之上。块设备与字符设备和网络设备一道,构成了Linux的三大外部设备。 块设备的典型代表是磁盘、光盘、U盘等。一个完整的块设备又可以分成多个分区,每个分区上都可以建立一个物理文件系统。与字符设备和网络设备相比,块设备具有自己的特点,如总是被抽象成块的数组、总可利用序号对其中的块进行随机访问、基本访问单位是块而不是字节、I/O操作一般要经过缓存等。 由于块设备的上述特点,Linux定义了较为复杂的块设备管理层来专门管理系统中的块设备。块设备管理层用结构gendisk描述块设备的物理特征,用结构block_device描述块设备的逻辑特征。前者所描述的设备可称为物理块设备,后者所描述的设备可称为逻辑块设备。物理块设备的操作单位是扇区,逻辑块设备的操作单位是块。 12.1.1 块设备的用户表示 Linux把自己的每个块设备看成是一个特殊的数据文件,称为块设备特殊文件,并在/dev目录中给每个块设备特殊文件指派了一个文件名,如/dev/hda1、/dev/sda2等。一个块设备特殊文件代表的是系统中的一个特定块设备(如/dev/sde代表的是一块U盘)或特定块设备中的一个特定分区(如/dev/hda1代表的是第一块IDE磁盘的第一个分区)。块设备特殊文件中的第i块对应着块设备中的第i块。 与普通文件一样,块设备特殊文件也可以被打开并被读写。向块设备特殊文件的第i块写入的数据实际被写入到了块设备的第i块中,从块设备特殊文件的第i块中读出的数据实际是块设备第i块中的数据。 Linux的用户用块设备特殊文件的文件名来标识块设备,Linux内核却用设备号来标识块设备。设备号的类型为dev_t,由两部分组成,其中的主设备号(major)标识的是块设备整体,如整块磁盘,次设备号(minor)标识的是块设备中的分区。一个块设备号可以唯一地标识一个块设备,正如一个PID可以唯一地标识一个进程一样。 为了实现文件名与块设备号之间的转换,Linux复用了块设备特殊文件的VFS inode结构,将实体的类型(块设备)和访问权限记录在i_mode域中,将块设备的大小记录在i_size域中,将块设备的设备号记录在i_rdev域中。 解析一个特定的块设备特殊文件名,可以得到它的VFS inode结构,从中可以获得块设备的设备号,据此可找到它的逻辑和物理表示结构。打开一个块设备特殊文件实际上打开的是与之对应的块设备,为该文件指定的操作集不同于普通的文件操作集,其中的read、write操作读写的是块设备本身而不是块设备特殊文件。 由此可见,块设备特殊文件仅仅是块设备的一种用户态表示,它在系统中仅有一个inode结构,并无实际的数据块。块设备特殊文件的主要作用是实现文件名与设备号之间的转换。 12.1.2 块设备的物理表示 在物理上,每个块设备都有自己特殊的属性,如大小、操作方法等。为了统一管理系统中所有的块设备,Linux抽象出了各类块设备的共同属性和操作方法,定义了结构gendisk用于描述整体的物理块设备(如整块磁盘),定义了结构hd_struct用于描述块设备中的单个分区。 结构gendisk中包含一个物理块设备的主要描
您可能关注的文档
- Java简明教程 作者 978-7-302-31477-6 第1章-Java入门.ppt
- Java简明教程 作者 978-7-302-31477-6 第2章-Java编程基础.ppt
- Java简明教程 作者 978-7-302-31477-6 第3章-Java程序基本结构.ppt
- Java简明教程 作者 978-7-302-31477-6 第4章-方法与数组.ppt
- Java简明教程 作者 978-7-302-31477-6 第5章-类和对象.ppt
- Java简明教程 作者 978-7-302-31477-6 第6章-继承、多态与接口.ppt
- Java简明教程 作者 978-7-302-31477-6 第7章-字符串.ppt
- Java简明教程 作者 978-7-302-31477-6 第8章-多线程与Applet技术.ppt
- Java简明教程 作者 978-7-302-31477-6 第9章-图形用户界面.ppt
- Java简明教程 作者 978-7-302-31477-6 第11章-Java游戏开发基础.ppt
- Linux原理与结构 作者 郭玉东 全书 封面及目录.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第3-4章 第3章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第3-4章 第4章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第5-8章 第5章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第5-8章 第6章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第5-8章 第7章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第5-8章 第8章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第9-11章 第10章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第9-11章 第11章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第12-13章 第12章.ppt
最近下载
- 《酒店客户关系管理 》课件——项目四 酒店客户关系建立与维护.pptx VIP
- 监控报价清单表-监控报价模板.xlsx VIP
- 1.1 什么是美术作品 课件高中美术湘美版(2019)美术鉴赏.pptx
- 《酒店客户关系管理 》课件——项目二 酒店客户关系管理主体.pptx VIP
- 船舶驾驶员实用英语口语.doc VIP
- 《酒店客户关系管理 》课件——项目一 酒店客户关系管理导论.pptx VIP
- 船舶驾驶员实用英语口语5.docx VIP
- 《酒店客户关系管理 》课件——项目八 酒店客户关系数字化运营.pptx VIP
- 食材配送应急预案处理流程及响应时间.docx VIP
- 保安服务 投标方案(技术标 ).doc
文档评论(0)