HFS+文件系统详解及Linux移植指南

需积分: 10 2 下载量 47 浏览量 更新于2025-01-04 收藏 847KB DOC 举报
“hfsplus spec”是对苹果机(Mac)使用的HFS+文件系统的详细技术文档,其中包含了一些中文解释,适用于Linux环境下的HFS+移植工作。 HFS+(Hierarchical File System Plus)是苹果公司在其Mac OS操作系统中使用的文件系统。这个文档主要涵盖了构成一个典型HFS+卷的九种结构,以下对这些结构进行详细阐述: 1. **HFS Boot Blocks**:位于卷的第0和第1个扇区,与HFS卷的引导块相同。这部分属于HFS包装器的一部分,负责启动过程中的基本功能。 2. **Volume Header**:在第2个扇区,相当于HFS卷的主目录块。Volume Header存储了关于卷的各种信息,例如分配块的大小、卷创建的时间戳,以及Catalog File(目录文件)或Extent Overflow File(范围溢出文件)等其他卷结构的位置。Volume Header总是固定在同一位置,便于快速访问。 3. **Allocation File**:管理哪些分配块是空闲的,哪些正在使用。类似于HFS中的Volume Bitmap,每个分配块由一位表示,0代表空闲,1代表占用。与HFS Volume Bitmap不同的是,Allocation File被存储为一个常规文件,不占用卷开头的特殊预留空间。此外,它还可以调整大小,不一定要在卷内连续存储。 4. **Catalog File**:是一个B*树结构,用于存储文件和文件夹的元数据,如名称、创建日期、修改日期、权限等。它是HFS+的核心组成部分,帮助快速查找和管理文件系统内的对象。 5. **Extents Overflow File**:当单个Catalog File无法容纳所有文件扩展信息时,会使用此文件。它扩展了Catalog File的能力,使得大文件的扩展信息也能妥善管理。 6. **Attributes File**:存储文件的额外属性,如Finder信息、资源 fork 等。 7. **Hot Files Table**:记录频繁访问的文件,优化访问性能。 8. **Bad Blocks File**:标记损坏的扇区,避免数据丢失。 9. **Volume Attribute Block**:存储卷级属性,如卷的名称、创建者信息等。 通过对这些结构的理解,开发者可以在非苹果系统上实现对HFS+文件系统的读写支持,例如在Linux系统中开发驱动程序或文件系统工具。这份文档是移植HFS+到Linux或其他平台的重要参考资料。