1、ext文件系统(扩展文件系统, extended filesystem)

类Unix文件系统:使用虚拟目录来操作设备,在物理设备上安定长的块来存储数据
采用“索引节点表”来存储虚拟目录中所存储文件的信息
索引节点系统在每个物理设备商建立一个单独的表(索引节点表)来存储文件信息。
每个文件在索引节点表中都有一个条目,条目的扩展部分来自跟踪每个文件的额外数据,
包含:文件名、文件大小、文件属主、文件的属组、文件的访问权限、指向文件数据的每个磁盘块指针。

2、ext2在ext上面增加了扩展

比如文件大小从2G到2T(后期是32T),增加了创建时间、修改时间和最后访问时间
修改了文件在数据块中的存储的方式。

ext:文件写入到屋里设备时,存储数据用到的块很容易分散在整个设备上,形成碎片 ext2:按组分配磁盘块来减轻碎片化。通过数据块分组,文件系统不需要为了数据块来查找整个屋里设备来读取文件 ext2存在的问题:存储和更新文件时,用新信息来更新索引节点表。二者没有原子性,系统崩溃或者断电会出现损坏。

3、日志文件系统 先将文件的更改写入到临时文件(日志)中,让后在数据写成功写到存储设备和索引节点表之后,在删除对应的日志。 三种级别:

1、数据模式:索引节点和文件都会被写入到日志,丢失数据风险低,但性能差
2、排序模式:只有索引节点数据会写入到日志,单只有数据成功写入之后才删除。性能和安全折中
3、回写模式:只有缩影节点数据会被写入日志,但不管文件数据何时写入,丢失数据风险高。

4、ext3

和ext2相同的索引节点表结构,但给每个块设备增加一个日志文件,来将准备写入存储设备的数据先写入日志文件。
ext3默认采用排序模式的日志功能。只将索引文件写入到日志,数据块写入成功了,删除日志。
可以通过命令修改ext3的日志模式。

缺点:无法恢复误删除的文件。没有内建的压缩功能。不支持加密

5、ext4(目前大多数默认的文件系统)

支持数据压缩和加密,同时还支持区段(extent)的功能
区段在存储设备上按块分配空间,但是在索引节点表只保存其实块的位置。由于无需列出所有用来
存储文件中数据的数据块,可以节省索引表中的空间。
同时支持块预分配功能:在存储设备上,给一个要变大的文件预留空间。通过ext4文件系统
可以为文件分配所有期望的快,ext4用0填满预留的数据块,并指导不要将它分配给其他的文件(通过这种方式可以限制文件大小?)