File Systems: FAT32, NTFS, exFAT, and HFS+
FAT32 was introduced with Windows 95B in 1997 and is still popular today for certain applications because it is widely supported. Nearly all mainstream operating systems can create, read, and write FAT32 partitions, and it still is a reasonable option for low-capacity external storage, such as USB flash drives. Modern Windows systems choose NTFS by default, and Mac OS runs HFS+.
Being a 32-bit file system, FAT32 is limited to a maximum partition size of 32 TB with 8 KB clusters, although the original specifications for the format limited the partition size to 2 TB and current Windows operating systems make it difficult to enable FAT32 partitions larger than 32 GB. Cluster size directly depends on partition size, and clusters range from 512 bytes to 8 KB. Since file size is stored in a 4-byte field, maximum file size is limited to 4 GB. This can be an issue with video files or drive images, for example. File names are flexible and allow up to 255 characters. FAT32 does not support journaling, which means that integrity issues with user data or meta data can result in lost information. FAT32 also does not support rights management.
While Windows XP offers the option of installing to a FAT32 partition, Windows Vista and 7 do not because of their reliance on NTFS.
The New Technology File System debuted alongside Windows NT and features similar attributes as IBM’s HPFS. Files can be up to 16 TB in size (16 EB in theory), while partitions currently max out at 256 TB. The file size limit is a very relevant real-world advantage over FAT32’s 4 GB. File names can be up to 255 characters long. NTFS supports LZ77 compression, file-level encryption (typically AES), and access control, managed through ACL. A small cluster size of 4 KB (compared to 32 KB on FAT32) ensures that there is less wasted capacity for small files written to the drive. This is also why 4 KB cluster size is so important to SSD performance and, as you’ll see, NTFS has advantages over the other file systems.
The Master File Table (MFT) stores files' properties, location, and access information. The smallest files are stored directly within the MFT, which is a file itself. Unlike a File Allocation Table, the MFT is not fully written during format, and it grows over time. Because of this, it can uniquely suffer from fragmentation. It also enables journaling of metadata, meaning that a write operation is first logged, the write procedure is executed, and the successful completion is updated in the journal. Should a write process fail due to a power failure, for instance, the system restore the pre-write journal and returns to a stable file system state.
exFAT was designed by Microsoft specifically to handle flash memory. High-capacity SDXC cards all come pre-formatted with exFAT, though it is not strictly required for use. All current Windows versions since Vista SP1 or XP SP2 support exFAT at up to 64 ZB and files of up to 16 EB. Unlike FAT32, clusters may grow up to 32 MB, and access control is managed through ACL. Free space bitmaps take care of capacity allocation, enabling improved delete performance. This is extremely important to maximize write performance, especially compared to NTFS, which requires that deleted data be overwritten.
This file system is not, however, supported as widely as FAT32 and NTFS due to Microsoft's exFAT licensing scheme. Consequently, exFAT is not yet widely used in consumer electronics, despite having been designed for just that purpose (and even though operating systems as far back as XP SP2 and Mac OS X 10.6.5 support exFAT). It is not, however, possible to install a Windows operating system on exFAT. Windows Vista and 7 rely heavily on the file permissions and other features that NTFS offers.
We have to give a nod to HFS+ because of its relevance. Benchmarking it requires Mac OS and different benchmarks than our standard set, which you'll find in a number of the SSD reviews run in our US lab.
Also known as Mac OS Extended, HFS+ works on all types of storage devices, including optical discs. HFS+ supports journaling, and partitions can typically be mounted on Unix and Linux systems. Even if a given kernel doesn't support HFS+, optional repo packages can often be found; however, sometimes these only enable reading of HFS+-formatted partitions. There are also third-party tools to enable HFS+ support on Windows, such as HFS for Windows by Paragon Software or MacDrive by Mediafour.
HFS+ works with 512 byte sectors that are grouped into allocation blocks. It supports up to 255-character file names, along with maximum file sizes of 8 EB. HFS+ preemptively manages file fragmentation by always looking for free space large enough to accommodate a file that is to be written. File size increases may result in files having to be rewritten completely. Finally, Mac OS X since 10.3 supports on-the-fly defragmentation, which takes action if a file is split up into more than eight parts, and if additional activity/access preconditions don’t apply. HFS+ supports access control, compression, and encryption.
NTFS was heavily based on HPFS (when MS and IBM were both working on OS/2). It even shares the same MBR partition type code.