Understanding macOS Filesystems
Filesystems are where Unix heritage meets Apple innovation. While macOS supports familiar Unix filesystem concepts—files, directories, permissions, symbolic links—it implements them atop storage technologies that differ significantly from traditional Unix systems.
Understanding macOS filesystems means understanding three layers:
- APFS: The modern storage technology providing advanced features like snapshots, clones, and space sharing
- The VFS layer: How macOS presents a unified filesystem interface to applications
- macOS conventions: Extended attributes, metadata, and organizational patterns unique to Mac
The Evolution of Mac Storage
The journey from original Macintosh to modern macOS represents a dramatic evolution:
1984-1998: The original Macintosh File System (MFS) and its successor HFS
- Resource forks and data forks as first-class concepts
- Case-insensitive by design
- No Unix permissions (Mac OS had no concept of users)
1998-2017: HFS+ (Mac OS Extended)
- Journaling for data integrity
- Support for Unix permissions (added for Mac OS X)
- Still case-insensitive by default
- Resource forks maintained for compatibility
2017-Present: APFS (Apple File System)
- Built for flash storage and SSDs
- Native encryption
- Snapshots and cloning
- Space sharing between volumes
- Case-sensitive option more practical
What You’ll Learn in This Part
APFS: Apple’s Modern Filesystem explains the architecture and capabilities of Apple’s current filesystem, including features like space sharing, snapshots, and encryption.
HFS+ Legacy and Migration covers the previous filesystem format, why you might still encounter it, and how to handle legacy volumes.
Case Sensitivity: Options and Implications addresses one of the most misunderstood aspects of macOS filesystems—why case-insensitivity is the default and when it matters.
Extended Attributes and Resource Forks explores macOS’s rich file metadata system, including quarantine attributes, Finder information, and the legacy of resource forks.
The Metadata Files: .DS_Store and ._AppleDouble explains those mysterious files that appear everywhere and how to manage them.
Filesystem Hierarchy: Where macOS Diverges maps out where things live on macOS compared to the Filesystem Hierarchy Standard used by Linux.
Disk Management from the Command Line teaches you to manage disks, partitions, and volumes using Terminal commands.
Volumes, Containers, and Snapshots dives deep into APFS’s container architecture and how to work with snapshots.
Why Filesystems Matter
As a Unix user, you might assume filesystems are interchangeable—files are files, directories are directories. On macOS, this assumption can lead to problems:
- Copy a file to a FAT32 USB drive and mysterious
._files appear - Git reports changes to files you didn’t modify (case sensitivity issues)
- Scripts fail because they assume
/optexists or/tmppersists across reboots - Files downloaded from the internet won’t run (quarantine attributes)
Understanding macOS filesystems helps you avoid these pitfalls and leverage features like snapshots and clones that traditional Unix filesystems lack.