扩展文件系统(Ext)

文件系统

文件系统是操作系统用于明确存储设备(常见的有磁盘和基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。从系统角度看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,文件系统负责为用户建立文件,存入、读出、修改转储文件,控制文件的存取等。

文件系统特性

文件系统众多,其运行方式也有区别,这种区别主要与操作系统的文件数据有关。以UNIX和UNIX based系统为例,这些操作系统的文件数据除了文件实际内容外,通常含有非常多的属性,例如Linux的文件权限与文件属性等。文件系统通常会将这两部分的数据分别存放在不同的块,权限与属性放置到inode中,实际数据则放置到data block块中。另外,还有一个超级块(super block)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。

每个inode与block都有编号,上述三个块的存储数据区别如下:

·super block:记录此文件系统的整体信息,包括inode/data block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;

·inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的data block号码;

·data block(简称block,下同):实际记录文件的内容,若文件太大时,会占用多个block。

由于每个inode与block都有编号,而每个文件都会占用一个inode,inode内则有文件数据放置的block号码。因此,如果能够找到文件的inode的话,那么自然就会知道这个文件所放置数据的block号码,从而读出该文件的实际数据。,其原理如下图所示:

图中浅灰色块为inode块,青蓝色块为block块。这种数据访问的方法称为索引式文件系统(indexed allocation)。

使用Windows系统的用户经常会需要进行碎片整理,而产生磁盘碎片的原因就是文件写入的block太过于离散了,文件系统读取文件时花费了大量时间在查找data block上,导致读取性能变得很差。这个时候就需要通过碎片整理将同一个文件所属的block汇合在一起。但对于Linux使用的索引式文件系统来说,基本上不需要经常进行碎片整理,但如果文件系统使用太久,经常删除/编辑/新增文件时,还是可能会造成文件数据太过于离散的问题,此时会需要整理一下。

 

Ext系列文件系统

 

Ext系列文件系统从Ext1开始就引入到了Linux内核中,直到现在最新的Ext4都是Linux默认标准的文件系统。下面主要以Ext2和Ext3文件系统来说明扩展文件系统的一些基本特性。

第二代扩展文件系统(Second extended filesystem)

Ext2于1993年1月加入Linux到核心支持之中,用以代替Ext1,其单一文件大小与文件系统本身的容量上限以及文件系统本身的簇大小有关。一般的X86架构电脑来说簇最大为4KB,则单一文件理论大小上限为2TB,而文件系统的容量上限为16TB。Ext2主要有如下几个特点:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值