前言

文件系统,就是用来管理和存储文件的权限,属性,内容等文件信息的系统。
因操作系统的不同,文件系统也并不相同。Linux的正统文件系统为ext2。U盘使用的文件系统是FAT格式。

ext2(索引式文件系统)

包括

  1. inode
    一个文件占用一个inode,主要是存储文件的权限和属性,还记录文件所存储所在的数据区块的号码。

  2. 数据区块
    存储文件的内容,当文件太大时,就会占用多个区块

  3. 超级区块
    记录整个文件系统的信息,比如使用了多少个inode,数据区块的使用量

读取

  • inode指向文件
    因为,每个inode都对应这个文件的数据块。所以,当我们要读取文件时,就可以通过inode作为索引,找到该文件的数据区块。

  • inode指向目录
    数据区块中仅存放文件名

FAT

这种格式的文件系统没有inode的存在,就没有索引了。所以,它的读取数据区块速度较慢。

碎片整理

当我们要读取一个文件时,磁头会在磁盘上转动,如果保存文件的各个数据区块分散严重的话,磁头就会在磁盘中要多转几圈才能读取数据。碎片整理,就是要把这些数据区块整理到一起,这样读取文件的速度就会更快。