Lably
Skip to content

HFS Plus

Journaling file system developed by Apple

  • 11 min read
  • 4 chapters

Related on Lably

Through Unicode and Boot sector

Compared to its predecessor HFS, also called Mac OS Standard or HFS Standard, HFS Plus supports much larger files (block addresses are 32-bit length instead of 16-bit) and using Unicode (instead of Mac OS Roman or any of several other character sets) for naming items. Like HFS, HFS Plus uses B-trees to store most volume metadata, but unlike most file systems that support hard links, HFS Plus supports hard links to directories. HFS Plus permits filenames up to 255 characters in length, and n-forked files similar to NTFS, though until 2005 almost no system software took advantage of forks other than the data fork and resource fork. HFS Plus also uses a full 32-bit allocation mapping table rather than HFS's 16 bits, improving the use of space on large disks.

History

Codenamed Sequoia in development, HFS+ was introduced with the January 19, 1998, release of Mac OS 8.1.

With the release of the Mac OS X 10.2.2 update on November 11, 2002, Apple added optional journaling features to HFS Plus for improved data reliability. These features were accessible through the GUI, using the Disk Utility application in Mac OS X Server, but only accessible through the command line in the standard desktop client.

With Mac OS X v10.3, all HFS Plus volumes on all Macs were set to be journaled by default. Within the system, an HFS Plus volume with a journal is identified as HFSJ.

Mac OS X 10.3 also introduced another version of HFS Plus called HFSX. HFSX volumes are almost identical to HFS Plus volumes, except that they are never surrounded by the HFS Wrapper that is typical of HFS Plus volumes and they optionally support case sensitivity for file and folder names. HFSX volumes can be recognized by two entries in the Volume Header, a value of HX in the signature field and 5 in the version field.

Mac OS X 10.3 also marked Apple's adoption of Unicode 3.2 decomposition, superseding the Unicode 2.1 decomposition used previously. This change caused problems for developers writing software for Mac OS X.

Mac OS X 10.3 introduced a number of techniques that are intended to avoid fragmentating files in HFS+.

With Mac OS X 10.4, Apple added support for Inline Attribute Data records, something that had been a part of the Mac OS X implementation of HFS Plus since at least 10.0, but always marked as "reserved for future use". Until the release of Mac OS X Server 10.4, HFS Plus supported only the standard UNIX file system permissions; however, 10.4 introduced support for access control list–based file security, which provides a richer mechanism to define file permissions and is also designed to be fully compatible with the file permission models on other platforms such as Microsoft Windows XP and Windows Server 2003.

In Mac OS X Leopard 10.5, directory hard-linking was added as a fundamental part of Time Machine.

In Mac OS X Snow Leopard 10.6, HFS+ compression was added using Deflate (Zlib). In open source and some other areas this is referred to as AppleFSCompression or decmpfs. Compressed data may be stored in either an extended attribute or the resource fork. When using non-Apple APIs, AppleFSCompression is not always completely transparent. OS X 10.9 introduced two new algorithms: LZVN (libFastCompression), and LZFSE.

In Mac OS X Lion 10.7, logical volume encryption (known as FileVault 2) was added to the operating system. This addition to the operating system in no way changed the logical structure of the file system. Apple's logical volume manager is known as Core Storage and its encryption at the volume level can apply to file systems other than HFS Plus. With appropriate hardware, both encryption and decryption should be transparent.

macOS 28, set to be released in 2027, will remove support for encrypted HFS+ drives.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Computing and communication