25.1.1. 不是你写入什么,而是你怎么写入
有经验的计算机用户可能对此心中有数。我们需要格式化(format)这个驱动器。格式化又称“制作文件系统(file system)”,它是一个将信息写入驱动器,在未经格式化的驱动器内的空白空间中建立秩序的过程。
如 图 25.2 “有文件系统的磁盘驱动器” 所暗示的,文件系统所强加的顺序涉及了一些折衷方案:
驱动器上极小的一部分可用空间被用来储存与文件系统有关的数据,这可以被视作管理开销。
文件系统把剩余的空间划分为小的、大小一致的段。在 Linux 中,这些段被称为块(block)。 [11]
由于文件系统带来创建目录和文件的可能性,以上牺牲可以被看作所需付出的一个很小的代价。
我们也要注意,这里没有单一、通用的文件系统。如 图 25.3 “含有不同文件系统的磁盘驱动器” 所示,磁盘上可能有不同类型的文件系统。你也许已经猜到了,不同的文件系统都是趋向于不兼容的;也就是说,支持某一文件系统的操作系统可能不支持另外一种文件系统。最后这句话并非一个固定的规则。例如,红帽企业 Linux 就支持很多文件系统(包括许多被其他操作系统使用的文件系统),这就使得在不同文件系统之间的数据交换变得容易了。
当然,将文件系统写入磁盘仅仅是一个开端。这个过程的目标实际上是储存并且检索数据。写入一些文件后,让我们再来看一看磁盘。
如 图 25.4 “已写入数据的磁盘驱动器” 所示,某些之前的空数据块现在也存放着数据。然而,光看这个框图,我们不能确认有多少个文件系统在这个磁盘上。这有可能是一个,也有可能是多个,因为所有的文件都使用至少一个数据块而有些文件则使用多块。另外一个值得注意的地方是,已经被使用的块不需要组成连续的空间;未使用的和已使用的块可以散布着排列。这被称作 fragmentation。当试图调整现存分区的大小时,Fragmentation 会起到它的作用。
如同许多与计算机相关的科技,磁盘驱动器自问世后一直在不断地变化。特别是,它们越来越大。不是实际尺寸越来越大,而是它们储存信息的能力越来越大。这种新增的容量导致了磁盘驱动器使用方法的根本改变。
[11] 与图解所示不同,块实际上是大小一致的。此外还请留意,一个普通的磁盘驱动器上含有数以千计的块。不过,在本次讨论中,我们可以忽略这些细微出入。