ext2 文件系统的硬盘布局

ext2 文件系统的硬盘布局

ID:21342917

大小:223.00 KB

页数:20页

时间:2018-10-21

ext2 文件系统的硬盘布局_第1页
ext2 文件系统的硬盘布局_第2页
ext2 文件系统的硬盘布局_第3页
ext2 文件系统的硬盘布局_第4页
ext2 文件系统的硬盘布局_第5页
资源描述:

《ext2 文件系统的硬盘布局》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Ext2文件系统的硬盘布局本文主要讲述Linux上比较流行的ext2文件系统在硬盘分区上的详细布局情况。Ext2文件系统加上日志支持的下一个版本是ext3文件系统,它和ext2文件系统在硬盘布局上是一样的,其差别仅仅是ext3文件系统在硬盘上多出了一个特殊的inode(可以理解为一个特殊文件),用来记录文件系统的日志,也即所谓的journal。由于本文并不讨论日志文件,所以本文的内容对于ext2和ext3都是适用的。粗略的描述对于ext2文件系统来说,硬盘分区首先被划分为一个个的block,一个ext2文件系统上的每个block

2、都是一样大小的,但是对于不同的ext2文件系统,block的大小可以有区别。典型的block大小是1024bytes或者4096bytes。这个大小在创建ext2文件系统的时候被决定,它可以由系统管理员指定,也可以由文件系统的创建程序根据硬盘分区的大小,自动选择一个较合理的值。这些blocks被聚在一起分成几个大的blockgroup。每个blockgroup中有多少个block是固定的。每个blockgroup都相对应一个groupdescriptor,这些groupdescriptor被聚在一起放在硬盘分区的开头部分,跟在s

3、uperblock的后面。所谓superblock,我们下面还要讲到。在这个descriptor当中有几个重要的block指针。我们这里所说的block指针,就是指硬盘分区上的block号数,比如,指针的值为0,我们就说它是指向硬盘分区上的block0;指针的值为1023,我们就说它是指向硬盘分区上的block1023。我们注意到,一个硬盘分区上的block计数是从0开始的,并且这个计数对于这个硬盘分区来说是全局性质的。在blockgroup的groupdescriptor中,其中有一个block指针指向这个blockgroup

4、的blockbitmap,blockbitmap中的每个bit表示一个block,如果该bit为0,表示该block中有数据,如果bit为1,则表示该block是空闲的。注意,这个blockbitmap本身也正好只有一个block那么大小。假设block大小为Sbytes,那么blockbitmap当中只能记载8*S个block的情况(因为一个byte等于8个bits,而一个bit对应一个block)。这也就是说,一个blockgroup最多只能有8*S*Sbytes这么大。在blockgroup的groupdescriptor

5、中另有一个block指针指向inodebitmap,这个bitmap同样也是正好有一个block那么大,里面的每一个bit相对应一个inode。硬盘上的一个inode大体上相对应于文件系统上的一个文件或者目录。关于inode,我们下面还要进一步讲到。在blockgroup的descriptor中另一个重要的block指针,是指向所谓的inodetable。这个inodetable就不止一个block那么大了。这个inodetable就是这个blockgroup中所聚集到的全部inode放在一起形成的。一个inode当中记载的最关

6、键的信息,是这个inode中的用户数据存放在什么地方。我们在前面提到,一个inode大体上相对应于文件系统中的一个文件,那么用户文件的内容存放在什么地方,这就是一个inode要回答的问题。一个inode通过提供一系列的block指针,来回答这个问题。这些block指针指向的block,里面就存放了用户文件的内容。2.1回顾现在我们回顾一下。硬盘分区首先被分为好多个block。这些block聚在一起,被分成几组,也就是blockgroup。每个blockgroup都有一个groupdescriptor。所有这些descriptor

7、被聚在一起,放在硬盘分区的开头部分,跟在superblock的后面。从groupdescriptor我们可以通过block指针,找到这个blockgroup的inodetable和blockbitmap等等。从inodetable里面,我们就可以看到一个个的inode了。从一个inode,我们通过它里面的block指针,就可以进而找到存放用户数据的那些block。我们还要提一下,block指针不是可以到处乱指的。一个blockgroup的blockbitmap和inodebitmap以及inodetable,都依次存放在这个bl

8、ockgroup的开头部分,而那些存放用户数据的block就紧跟在它们的后面。一个blockgroup结束后,另一个blockgroup又跟着开始。详细的布局情况3.1SuperBlock所谓ext2文件系统的superblock,就是硬盘分区开头(开头的第一个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。