基本的Linux文件系统:

    最早,Linux系统用的是模仿UNIX文件系统功能的简单文件系统。下面将讨论那个文件系统的演进过程。 

    1.ext文件系统

    Linux操作系统引入的最早的文件系统叫做扩展文件系统(extended  filesystem,简称为ext)。它为Linux提供了一个基本的类UNIX文件系统:使用虚拟目录来操作硬件设备,在物理设备上按定长的块来存储数据。

    ext文件系统采用称作索引节点的系统来存放虚拟目录中所存储文件的信息。Linux通过索引节点号来饮用索引节点表中的每一个索引节点,而不是通过文件全名及路径来标识文件。

    2.ext2文件系统

    不过最早的ext文件系统有不少限制,比如说文件大小不能超过2GB。在Linux出现不久之后,ext文件系统就升级为了第二代的ext文件系统,简称为ext2文件系统。

    ext2的索引节点表为文件增加了创建时间值,修改时间值和最后访问时间值来帮助对文件系统的追踪。ext2的最大文件系统还增大到了2TB(在ext2的后期版本中,还增加到了32TB)

    除了扩展索引节点之外,ext2文件系统通过按组分配磁盘来减少磁盘碎片化(数据的碎片化会降低文件系统的性能)。

    3.日记文件系统

    ext2文件系统也有一些限制。比如说,文件系统每次存储或者更新文件,都要去更新索引节点表。又比如在更新文件或者更新索引节点表的过程当中,计算机系统发生了什么事,二者就不同步了。ext2文件系统由于容易在系统崩溃或者是断电时损坏而臭名昭著。

    所以开发人员又开发出来一种新的文件系统--日记文件系统。取代了之前先将数据写入存储设备再更新索引节点的做法,日记文件系统会先将文件的更改写入到临时文件(称作日记,journal),然后在数据成果写入到存储设备或者索引节点之后再删除对应的日记条目。

    根据不同的日记方法,日记文件系统可以分为3类:

    数据模式:索引节点和文件都会写入日记,数据丢失的风险低,但是性能差。

    排序模式:只有索引节点会被写入到日记,但是会在数据成功写入之后才会删除日记,性能和安全居中。

    回写模式:只有索引节点会被写入到日记,但不管数据何时写入,数据丢失的风险高,但还是比没有日记的好。

    4.扩展的日记文件系统

    (待续)