1 文件系统特性
Linux 的正统文件系统为 Ext2。
文件系统通常会将这两部份的数据分别存放在不同的区块,权限
与属性
放置到inode
中,至于实际数据则放置到data block
区块中。另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括inode 与block 的总量、使用量、剩余量等。
- superblock:记录此filesystem 的整体信息,包括inode/block 的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
- inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block 号码;
- block:实际记录文件的内容,若文件太大时,会占用多个block 。
文件系统先格式化出inode 与block的区块,假设某一个文件的属性与权限数据是放置到inode 4 号(下图较小方格内),而这个inode 记录了文件数据的实际放置点为2, 7, 13, 15 这四个block 号码,此时我们的操作系统就能够据此来排列磁盘的阅读顺序,可以一口气将四个block 内容读出来。这种数据存取的方法我们称为索引式文件系统(indexed allocation)
。
随身碟使用的文件系统一般为FAT 格式。FAT 这种格式的文件系统并没有inode 存在,所以FAT 没有办法将这个文件的所有block 在一开始就读取出来。每个block 号码都记录在前一个block 当中,他的读取方式有点像底下这样:
上图中我们假设文件的数据依序写入1->7->4->15 号这四个block 号码中, 但这个文件系统没有办法一口气就知道四个block 的号码,他得要一个一个的将block 读出后,才会知道下一个block 在何处。如果同一个文件数据写入的block 分散的太过厉害时,则我们的磁盘读取头将无法在磁盘转一圈就读到所有的数据ÿ