文件系统的逻辑空间最终要通过逻辑块到物理块的映射转化为磁盘等介质上的物理空间,因此,对逻辑空间的组织和管理的好坏必然影响到物理空间的使用情况。一个文件系统,在磁盘上如何布局,要综合考虑以下几个方面的因素。
·首先也是最重要的是要保证数据的安全性,也就是说当在向磁盘写数据时发生错误,要能保证文件系统不遭到破坏。
·其次,数据结构要能高效地支持所有的操作。Ext2中,最复杂的操作是硬链接操作。硬链接允许一个文件有多个名称,通过任何一个名称都将访问相同的数据。另一个比较复杂的操作是删除一个已打开的文件。
·第三,磁盘布局应使数据查找的时间尽量短,以提高效率。驱动器查找分散的数据要比查找相邻的数据花多得多的时间。一个好的磁盘布局应该让相关的数据尽量连续分布。例如,同一个文件的数据应连续分布,并和包含该文件的目录文件相邻。
·最后,磁盘布局应该考虑节省空间。虽然现在节省磁盘空间已不太重要,但也不应该无谓的浪费磁盘空间。
Ext2的磁盘布局可以说综合考虑了以上几方面的因素,因此,它是一种高效、安全的文件系统。图9.2是Ext2的磁盘布局在逻辑空间中的映像。可以看出,它由一个引导块和重复的块组构成的,每个块组又由超级块、组描述符表、块位图、索引节点位图、索引节点表、数据区构成。引导块中含有可执行代码,启动计算机时,硬件从引导设备将引导块读入内存,然后执行它的代码。系统启动后,引导块不再使用。因此,引导块不属于文件系统管理。
以下对块组及块组中的数据结构的介绍可以充分领略Ext2磁盘布局的优越之处。
图9.2 Ext2磁盘布局在逻辑空间的映像