This is a crazy week. Not only are we finding ourselves flipping between the E3 2016 gaming convention and Apple’s own developer conference (WWDC), Apple has separately decided to surprise us all with a much-requested, long-needed update: a sparkly new file system for iOS, OS X, tvOS, and WatchOS. It’s simply called Apple File System, or APFS, and it’s optimized for SSDs and flash-based storage solutions that are used in MacBooks, iPads, iPhones, AppleTV set-top boxes, and so on.
Apple describes APFS as a modern file system. According to a guide Apple provides here, APFS includes “strong encryption, copy-on-write metadata, space sharing, cloning for files and directories, snapshots, fast directory sizing, atomic safe-save primitives, and improved file system fundamentals.“ It supports “nearly” all of the features of the older HFS+ file system while offering improvements over the previous system in the process.
WWDC 2016: Apple wants iOS to be the first language your child learns
Apple’s original Hierarchical File System (HFS) is more than 30 years old, launched way back in 1985 and followed up by the currently-used HFS+ file system in 1998. These were created when customers still depended on floppy disks and hard drives with spinning platters that had storage capacities ranging from kilobytes to megabytes. And although the hard drives of today offer terabytes of storage capacity, flash-based solid state drives are becoming more mainstream as their prices become more affordable. They’re faster and more reliable too, making them ideal storage candidates for OEMs.
That said, Apple seemingly set out to not only provide a modern file system that natively supports flash-based storage, but to create a more secure file system in the process. “There is now also a greater importance placed on keeping sensitive information secure and safe from prying eyes,” the company says, seemingly pointing to the fiasco it endured with the FBI and the iPhone used by the San Bernardino shooter back in December.
On a technical level, Apple explains that the base storage unit used by APFS is called a container. “It generally maps 1:1 to GUID Partition Table (GPT) entries, and manages its own space allocations and crash protection scheme. Each container exports one or more volumes, or file systems, each of which have their own namespaces, or sets of files and directories,” Apple explains.
Apple points out that APFS does not directly implement software RAID. Instead, APFS can be used with an Apple RAID volume to support RAID 0, RAID 1, and JBOD. Direct-attached hardware RAID solutions can be used with the new APFS file system too.
The guide shows that APFS supports 64-bit inode numbers, essentially meaning that the information associated with a stored file is now larger. AFPS also supports one nanosecond timestamp granularity, supports sparse files, provides an expansive block allocator, and has built-in crash protection so that updates don’t cause serious issues. APFS supports TRIM operations too, just as HFS+ does, which are issued asynchronously once space is reclaimed or files are deleted.
On the security front, APFS combines the Full Disk Encryption feature that was made available in OS X along with the individual file encryption feature introduced in iOS 4. Thus, according to Apple, customers can choose from a number of encryption models for each volume in a container: no encryption, single-key encryption, or multi-key encryption that relies on per-file keys for file data and a separate key for sensitive metadata. Apple’s encryption method, AES-XTS or AES-CBC, depends on the actual device.
Finally, Apple says that volumes formatted with APFS cannot be read on OS X 10.11 “Yosemite” or earlier. However, these volumes can be shared using the SMB network file sharing protocol. Developers will need to update their existing utilities if they want their programs and applications to support the new file system.
Apple’s APFS file system is now available as a Developer Preview in OS X 10.12. The company plans to roll out its new file storage technology sometime in 2017.