Comment activity

Technopaedia —

HFS+

The current file system used on Mac OS X is HFS+, an evolution of the original Hierarchal File System designed for the Mac OS. HFS was 16-bit—in the late '90s (at the time of Mac OS 8), this was becoming a critical constraint on the hardware. Larger, multi-gigabyte hard drives began to exceed the capabilities of HFS. A next-generation file system was planned, but HFS+ was designed as a stop-gap measure until that project was finished.

Former Apple engineer Don Brady was the technical lead on the HFS+ team at the time. "The initial HFS+ was primarily about addressing the block count problem," he told Ars. "Since we believed it was only a stop gap solution, we just went from 16 to 32 bits. Had we known that it would still be in use 15 years later with multi-terabyte drives, we probably would have done more design changes!"

The HFS+ team had about six months to re-write HFS in C—the code base was 68K assembly—before adding changes. Besides the increased file capacity and ability to access larger disk sizes, the team also added in Unicode support at the behest of engineers on the international team.

Brady later worked on the Mac OS X team, and was involved in much of the work to bring HFS+ to Mac OS X. "Since Mac OS X was Unix and HFS+ wasn't, I had to start adding all the missing features—symlinks, hardlinks, POSIX conformance—and in a way that was backwards compatible to Mac OS 8," he said.

"In hindsight, I'm amazed at how we were able to extend HFS+ so much," Brady added. That includes the extensible metadata used by Mac OS X's Spotlight search, live partition resizing used for Boot Camp, and the Adaptive Hot File Clustering used to reduce seek times for frequently used system files. "I think the last change I was involved with was the directory hard links necessary for Time Machine." Since then, Apple engineers have added additional features to maintain HFS+ performance.

Apple has had projects intended to add support for a more modern filesystem, including ZFS, and at least one project to create a new filesystem from scratch. However, those projects are no longer active, and Apple seems to be focusing on maintaining and improving HFS+ incrementally for the time being.