Ext2文件系统_第1页
Ext2文件系统_第2页
Ext2文件系统_第3页
Ext2文件系统_第4页
Ext2文件系统_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Ext2文件系统简介nEXT2文件系统是EXT文件系统的升级,在Linux中得到了广泛的使用。nLinux最常见的根文件系统n介绍EXT2文件系统的n磁盘组织n目录项和支持的文件类型n一个文件系统一般使用块设备上一个独立的逻辑分区;文件逻辑分区中除了有表示文件内容的逻辑块(称为数据块)外,还设置了包含管理和控制信息的逻辑块。磁盘上可能有多个逻辑分区,每个分区可以使用不同的文件子系统。next2文件系统把逻辑分区划分为块组,并且从0开始编号。每个块组包含的等量的物理块(即块组大小是相同的;物理分区最后一个块组可能小些);在块组的数据块中存储文件或目录;n上图中启动块(BootBlock)的大小是

2、确定的,用来存储磁盘分区信息和启动信息,任何文件系统都不能使用启动块。启动块之后才是ext2文件系统的开始。(一)EXT2文件系统的磁盘组织n除了引导扇区之外,EXT2磁盘分区被顺序划分为若干个磁盘块组磁盘块组(Block Group)。n每个块组由若干个磁盘块,按照相同的方式组织,具有相同的大小。nEXT2磁盘块组中的磁盘块按顺序被组织成:n一个用作超级块超级块的磁盘块。n在这个磁盘块里,存放了文件系统超级块的一个拷贝;nN个记录组描述符组描述符的磁盘块;n1个记录数据块位图数据块位图的磁盘块;n1个记录索引结点位图索引结点位图的磁盘块;nN个用作索引结点表索引结点表的磁盘块;nN个用作数据

3、块数据块的磁盘块。EXT2的超级块n描述整个分区的文件系统信息,如块大小、版本号、上次mount时间等。n每个块组的第一个磁盘块用来保存所在EXT2fs的超级块n多个块组中的超级块形成冗余n在某个或少数几个超级块被破坏时,可用于恢复被破坏的超级块信息。n系统运行期间,把超级块复制到系统缓冲区内,只需把块组0的超级块读入内存,其它块组的超级块做为备份块组描述符n块组描述符用来描述一个磁盘块组的相关信息n块组描述符组由若干块组描述符组成,描述了文件系统中所有块组的属性,存放于超级块所在块的下一个块中。n一个块组描述符的结构如下:数据块位图和索引结点块位图nEXT2的空闲盘块分配算法采用了位图法n位

4、图:为便于查找数据块或索引结点的分配信息n每个位(bit)都对应了一个磁盘块:n0,表示对应的磁盘块(或索引结点)空闲n1,表示占用。n2个位图分别占用一个专门的磁盘块;位于组描述符表之后n根据磁盘块的大小,可以计算出每个块组中最多能容纳的数据块个数和索引节点块个数索引结点nEXT2中所有的索引结点大小相同,都是128个字节。一个inode的结构如下:关于索引节点中的i_blocknext2的索引结点中使用了组合索引方式。n前12项用作直接索引n第13项用作间接索引n第14项用作二次间接索引n第15项用作三次间接索引nEXT2文件系统中的每个文件由一个inode描述,且只能由一个inode描述

5、。ninode与文件一起存放在外存,系统运行时,把inode写入内存建立映像,加快文件系统速度。索引节点表nEXT2的一个磁盘块组中的索引结点存储在一组连续的磁盘块中,形成一个索引结点表。n这组磁盘块中的第一个磁盘块的块号存储在超级块的bg_inode_table数据项中。ninode表用于跟踪定位每个文件,包括位置、大小等(但不包括文件名),一个块组只有一个inode表。n每个文件都有一个inode,一个块组中的所有inode组成了inode表。n根据磁盘块的大小,可以计算出每个磁盘块能容纳多少个索引结点n根据索引结点的总个数,可以计算出索引结点表所需要占用的磁盘块的个数。ninode表占多

6、少个块在格式化时就要决定并写入块组描述符中,mke2fs格式化工具的默认策略是一个块组有多少个8KB就分配多少个inode。数据块数据块n数据块中存放文件的内容,包括目录表、扩展属性、符号链接等。EXT2中的目录项和文件类型n在ext2文件系统中,目录是作为文件存储的。n这种文件的数据块中存放了该目录下的所有目录项EXT2支持的文件类型nEXT2在目录项中存放了文件的类型信息。文件类型可以是07中的任意一个整数。它们分别代表如下含义:n0:文件类型未知;n1:普通文件类型;n2:目录;n3:字符设备;n4:块设备;n5:有名管道FIFO;n6:套接字;n7:符号链接注意:数据结构的VFS映像n

7、超级块、组描述符、缓冲区、以及内存数据对象的关系(三)创建一个ext2文件系统n在磁盘上创建文件系统通常有两个步骤:n格式化磁盘nLinux中:superformat或者fdformatn创建文件系统nExt2:mke2fsnmke2fs的缺省参数n磁盘块大小:1024字节n分片:目前不支持,因此与磁盘块一样n分配inode的个数:1/8192Bn永久保留的块的个数:5创建流程v初始化超级块和组描述符vOptionally,检查是否有坏块,若有创建坏块列表v对每个块组,保留所有用来存放超级块、组描述符、inode表、2个位图的磁盘块v初始化每个块组中的位图v初始化每个块组中的inode表v创建

8、/root目录v创建lost+found目录(供e2fsck使用,与坏块相关)v为上述两个目录而更新位图信息v若有坏块,则将其在lost+found目录中组织起来以1.44MB的软盘为例,创建ext2文件系统后VFS操作Ext2中对应的具体的操作表超级块操作ext2_sops指针数组普通文件的索引节点操作Ext2_file_inode_operations目录文件的索引节点操作Ext2_dir_inode_operations链接文件的索引节点操作Ext2_symlink_operations/Page_symlink_operations字符设备文件Chrdev_inode_operatio

9、ns块设备文件Blkdev_inode_operations命名管道Fifo_inode_operations文件操作ext2_file_operations(四)Ext2提供的各种对象方法n超级块对象方法n索引节点对象方法n文件对象方法(五)管理ext2的磁盘空间n存储在磁盘上的文件与用户所“看到”的文件有所不同:n用户感觉,文件在逻辑上是连续的n而在磁盘上,存储文件数据的磁盘块可能分散在磁盘各处n用户感觉,文件可能比较大n而在磁盘上,由于文件空洞的存在,分配给文件的磁盘空间可能小于用户感觉到的文件大小。n涉及到如下操作:n创建/删除一个索引节点n数据块的寻址n文件空洞n分配/释放一个数据块

10、n操作原则n避免文件碎片n考虑效率创建/删除一个索引节点n创建一个磁盘索引节点n删除一个索引节点关于数据块的寻址n任何一个常规文件都会包含一系列数据块n这些块或者由文件内的相对位置(文件块号)来标识,或者由磁盘分区内的位置(它们的逻辑块号)来标识。n文件内块号vs.逻辑块号n根据数据在文件中的偏移可以计算逻辑块号:n首先计算出文件内块号(偏移f1)/块大小的商1n根据索引信息,查询到逻辑块号混合索引示意图n最初12个元素产生的逻辑块号与文件最初的12个块对应,即对应的文件块号从011.n下标12中的元素文件块号从12b/4+11(二级数组)n下标13中的元素文件块号从b/4+12(b/4)平方

11、+(b/4)+11(三级数组)n下标14中的元素文件块号类推(四级数组)文件大小限制n文件系统中的块的大小影响寻址机制,大的块允许EXT2把更多的逻辑块号放在一个单独的块中。关于文件空洞nAfile holeisaportionofaregularfilethatcontainsnullcharactersandisnot stored in any data blockondisk.n这是UNIX文件一直以来都有的一个特性n文件的洞是普通文件的一部分,它是一些空字符但没有存放在磁盘的任何数据块中。n例如命令:创建一个大小为102461字节的文件,这个文件有一个102466144个字节大小的空洞。只有最后一个字节存放了字母“X”n由于空洞该文件在磁盘上只占一个数据块n文件空洞可以节省磁盘空间nExt2通过数据块的动态分配来实现这一点:当且仅当一个进程要写数据到文件当且仅当一个进程要写数据到文件中的时候才真正分配磁盘块中的时候才真正分配磁盘块n每个索引节点的每个索引节点的i_size字段定义程序所看到字段定义程序所看到的文件大小,包括洞。的文件大小,包括洞。ni_blocks字段存放分配给文件有效的数据块字段存放分配给文件有效的数据块数数n前面例子:假定文件创建在假定文件创建在4096大小的块上大小的块上ni_size字段存放的数为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论