文件系统

纲要

  • Linux
    • Minix
    • Ext
    • XFS
  • Window
    • FAT
    • HPFS
    • NTFS

Linux

Linux从早期的Minix系统到现在,演化到了近$600$万行代码;Linux在开发的时候有参考了Minix系统,其中文件系统就完全照搬了Minix文件系统。

随后Linux才使用了Ext2,甚至是Ext3Ext4

Minix

Minix文件系统来源于Minix系统;因为Minix文件系统是久远了,这里就简单说一下就可以了!

Minix文件系统有$6$个组成部分:

  • 引导块,总是存储在第一个块。在系统启动时,它包含了引导加载程序的加载和运行一个操作系统。
  • 超级块是存储有关文件系统,即允许操作系统来定位和理解其它文件系统结构数据。例如,i节点逻辑块,两个位图的大小和的起始块的数据区。
  • i节点位图用于描述磁盘上每个i节点的使用情况;除了第一个bit以外,i节点位图中的每个bit依次代表磁盘上每个i节点区域中的一个i节点,因此i节点位图的bit 1代表盘上i节点区域中的第一个i节点
  • 逻辑块位图,该区域的位图的工作原理相同的方式作为索引节点位图,除了它跟踪的区域。
  • i节点区域。每个文件或目录被表示为一个inode,它记录元数据,包括类型(文件,目录,块炭,管道),标识为用户和组,三时间戳记录的日期和上次访问时间,最后修改和最后的状态改变。一个inode还包含指向该区域中的地址的列表的数据区所在的文件或目录的实际存储数据。
  • 逻辑块是在文件系统的最大组成部分,使用大部分空间。它是在实际的文件和目录的数据被存储。

Ext

采用Unix文件系统UFS)的元数据结构,以克服MINIX文件系统性能不佳的问题。 说到Ext,不得不先说说VFS(Virtual file system, 虚拟文件系统)。

虚拟文件系统是操作系统的文件系统虚拟层,在其下是实体的文件系统。虚拟文件系统的主要功用,在于让上层的软件,能够用单一的方式,来跟底层不同的文件系统沟通。在操作系统与之下的各种文件系统之间,虚拟文件系统提供了标准的操作接口,让操作系统能够很快的支持新的文件系统。

Wikipedia上的比较看来,ExtMinix最大的差异就是在于VFS了!

Ext在后续有不断发展,又有了以下的版本!

文件系统名称 介绍 特点 优势
ext 第一代扩展文件系统,一种文件系统,于1992年4月发表,是为linux核心所做的第一个文件系统。采用Unix文件系统(UFS)的元数据结构,以克服MINIX文件系统性能不佳的问题。 它是在linux上,第一个利用虚拟文件系统实现出的文件系统 克服MINIX文件系统性能不佳的问题
ext2 第二代扩展文件系统是LINUX内核所用的文件系统。它开始由Rémy Card设计,用以代替ext,于1993年1月加入linux核心支持之中。ext2 的经典实现为LINUX内核中的ext2fs文件系统驱动,最大可支持2TB的文件系统,至linux核心2.6版时,扩展到可支持32TB。 在ext2文件系统中,文件由inode(包含有文件的所有信息)进行唯一标识。一个文件可能对应多个文件名,只有在所有文件名都被删除后,该文件才会被删除。此外,同一文件在磁盘中存放和被打开时所对应的inode是不同的,并由内核负责同步。 文件系统高效稳定
ext3 EXT3是第三代扩展文件系统(英语:Third extended filesystem,缩写为ext3),是一个日志文件系统,常用于Linux操作系统。 Ext3文件系统是直接从Ext2文件系统发展而来,目前ext3文件系统已经非常稳定可靠。它完全兼容ext2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。 1. 高可用性:系统使用了ext3文件系统后,即使在非正常关机后,系统也不需要检查文件系统。
2. 数据的完整性:避免了意外宕机对文件系统的破坏。
3. 文件系统的速度:因为ext3的日志功能对磁盘的驱动器读写头进行了优化。所以,文件系统的读写性能较之Ext2文件系统并来说,性能并没有降低。
4. 数据转换 :“由ext2文件系统转换成ext3文件系统非常容易。
5. 多种日志模式
ext4 EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。Ext4是由Ext3的维护者Theodore Tso领导的开发团队实现的,并引入到Linux2.6.19内核中。 Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构,而不仅仅像Ext3对Ext2那样,只是增加了一个日志功能而已。Ext4可以提供更佳的性能和可靠性,还有更为丰富的功能 1.与Ext3兼容:执行若干条命令,就能从Ext3在线迁移到Ext4,而无须重新格式化磁盘或重新安装系统。
2.更大的文件系统和更大的文件:较之Ext3目前所支持的最大16TB文件系统和最大2TB文件,Ext4分别支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及16TB 的文件。
3.无限数量的子目录:Ext3目前只支持32,000个子目录,而Ext4支持无限数量的子目录。
4.Extents:Ext4引入了现代文件系统中流行的extents概念,每个 extent 为一组连续的数据块,相比Ext3采用间接块映射,提高了不少效率。
5.多块分配:Ext4 的多块分配器“multiblock allocator”(mballoc) 支持一次调用分配多个数据块。
6.延迟分配
7.快速 fsck
8.日志校验
9.“无日志”(No Journaling)模式
10.在线碎片整理
11.inode 相关特性:较之Ext3默认的inode大小128字节,ext4默认inode大小为256字节

其他的就不一一细说了,下面开始讲讲Window的吧!

Window

  • FAT
  • HPFS
  • NTFS

前面说完的Ext其实和FAT还是挺像的!

FAT