- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
讨论EXT2文件系统.doc
讨论EXT2文件系统 胡祚华
1. 什么是EXT2
EXT2的全称是The Second Extended File System或Extended File System Verson 2,创始人是Remy Card。EXT2目前被广泛运用于Linux操作系统中,它是一种快速文件系统。
2. EXT2文件系统的整体结构和布局 Linux将整个磁盘划分为若干分区,每个分区被当作独立的设备对待:一般需要一个主分区Native和一个交换分区swap。主分区用于存放文件系统,交换分区用于虚拟内存。主分区内的空间又分成若干个组。每个组内度包含有一个超级块的拷贝,以及inode和数据块等信息。整个文件系统的布局如图所示。
每个块组都包含了一份文件系统关键控制信息的拷贝(超级块和文件系统组描述符表),以及描述组内数据存储与控制信息的位示图、I节点位图和I节点表。
3. EXT2的磁盘空间分配
对于如何决定磁盘空间分配有如下目标:
首先,数据结构必须是可恢复的。即如果在向磁盘写入数据的时候发生错误(比如突然断电),整个文件系统不会丢失数据。虽然偶尔丢失某些当前正在写入的数据是可接受的,但绝不能丢失磁盘上的所有数据。
其次,数据结构应虑及所有操作能够有效地执行。最难执行的操作通常是hard link(硬连接)。因为当使用hard link时,会有不止一个目录项或文件名指向相同的数据。用任何有效的文件名访问这些数据都能得到相同的数据。另一个比较困难的操作是删除已经被打开的文件。即如果在某应用程序打开一个文件访问同时,一个用户删除了该文件,那么该应用程序应该仍能访问该文件的数据。此文件的数据只有等到最后一个应用程序访问完并关闭了该文件,它才能完全从磁盘上清除。这种做法与DOS/Windows有着很大的不同。
再次,磁盘空间分配通过聚簇数据将搜寻次数降到最少。读两块在磁盘上相距很远的数据要比读同样大小的两块彼此相临的数据要花费更多的时间。因此可以通过把相关数据聚簇在一起而将磁盘的搜寻时间降到最少。
最后,磁盘空间分配应该能尽量节省磁盘空间。这在以前显得尤为重要,不过即使现在浪费空间也是不应该的。
4. 主要数据结构
(1)超级块
超级块包含了对文件系统基本大小和状态的描述,文件系统管理者可以用这些信息来使用和维护文件系统。当文件系统被安装之后,通常情况下只读取位于块组0的超级块。但每个块组都包含一份超级块的备份用以当文件系统被破坏时能恢复。 超级块中的重要信息包括: 魔术号码(Magic Number :文件系统安装软件通过检查这个号码来判断这是否是一个EXT2文件系统的超级块。 修订版本号(Revision Level :主、次修订版本号使安装代码可以判断这个文件系统是否支持只在某些特定修订版本有效的功能。 安装次数和最大安装次数:每次安装文件系统时安装次数都加1,当安装次数等于最大安装次数时,系统将提示运行磁盘检查程序检查文件系统中是否存在错误。 块组号:包含次超级块的块组号 块大小:文件系统中一个块的大小,以字节为单位。文件系统创建时可设定此值。 每组块数:每个块组中包含的块数,这个值也是在文件系统创建时设定。 空闲块数:文件系统中空闲块的数目。 空闲I节点数:文件系统中空闲的I节点数
起始I节点号:文件系统中第一个I节点的号码。在EXT2文件系统中,第一个I节点应该是根目录/的目录入口。
ext2_super_block是EXT2文件系统实现代码中超级块结构,ext2_sb_info结构是EXT2文件系统超级块在内存中保存的形式。
(2)组描述符
组描述符用于描述每个块组的控制和统计信息。所有块组的组描述符在每个块组中都有备份,以便在文件系统遭到破坏时能够恢复。但通常情况下文件系统只使用块组0内的组描述表。 实现代码中的组描述符是由ext2_group_desc结构表示的,结构中的域采用物理存储设备的数据存储格式。
5. EXT2位示图和I节点图 位示图表示一个块组内块的分配情况,位图内每一位对应一个块,一个位为“1”表示对应的块已被分配。
I节点位图表示一个块组内I节点的分配情况,位图内每一位对应一个I节点,一个位为“1”表示对应的I节点已被分配。
(1)I节点
在EXT2文件系统中,每个文件或目录都由一个I节点唯一描述,每个块组的I节点集中存放在一个I节点表中。 I节点中包含的重要信息有: a . 模式:模式包括两方面内容,I急电所描述文件的类型和用户访问该文件的权限。 b. 拥有者信息:包括文件所有者的用户标志号(UID)和组标志号(GID) c. 大小:以字节计算的文件大小 d. 时间标志:包括I节点创建和最后一次被修改的时间 e. 数据块指针:I节点包括指向所描述文件的数据块的指针。EXT2文件系统的I
文档评论(0)