分层文件系统(Hierarchical File System,HFS)是一种由苹果电脑开发,并使用在Mac OS上的文件系统。最初被设计用于软盘和硬盘,同时也可以在在只读媒体如CD-ROM上见到。
分层文件系统(Hierarchical File System,HFS)是一种由苹果电脑开发,并使用在 Mac OS 上的文件系统。最初被设计用于软盘和硬盘,同时也可以在在只读媒体如 CD-ROM 上见到。
历史
HFS 首次出现在 1985 年 9 月 17 日,作为 Macintosh 电脑上新的文件系统。它取代只用于早期 Mac 型号所使用的平面文件系统 Macintosh File System(MFS)。因为 Macintosh 电脑所产生的数据,比其它通常的文件系统,如 DOS 使用的 FAT 或原始 Unix 文件系统所允许存储的数据更多。苹果电脑开发了一种新式更适用的文件系统,而不是采用现有的规格。例如,HFS 允许文件名最多有 31 个字符的长度,支持元数据和双分支(每个文件的数据和资源支分开存储)文件。
尽管 HFS 像其它大多数文件系统一样被视为专有的格式,但是只有它为大多数最新的操作系统提供了很好的通用解决方法以访问 HFS 格式磁盘。
在 1998 年,苹果电脑发布了 HFS Plus,其改善了 HFS 对磁盘空间的地址定位效率低下,并加入了其它的改进。当前版本的 Mac OS 仍旧支持 HFS,但从 Mac OS X 开始 HFS 卷不能作为启动用。
构成方式
分层文件系统把一个卷分为许多 512 字节的“逻辑块”。这些逻辑块被编组为“分配块”,这些分配块可以根据卷的尺寸包含一个或多个逻辑块。HFS 对地址分配块使用 16 位数值,分配块的最高限制数量是 65536。
组成一个 HFS 卷需要下面的五个结构:
卷的逻辑块 0 和 1 是启动块,它包含系统启动信息。例如,启动时加载的系统名称和壳(通常是 Finder)文件。逻辑块 2 包含主目录块(Master Directory Block,简称 MDB)。逻辑块 3 是卷位图(Volume Bitmap)的启动块,它追踪分配块使用状态。总目录文件(Catalog File)是一个包含所有文件的记录和储存在卷中目录的 B*-tree。扩展溢出文件(Extent Overflow File)是当最初总目录文件中三个扩展占用后,另外一个包含额外扩展记录的分配块对应信息的 B*-tree。