Written by Christian Ahmer | 11/24/2023

exFAT

The Extended File Allocation Table (exFAT) filesystem is a proprietary file system designed and patented by Microsoft. It was introduced in 2006 and is optimized for flash memory such as USB flash drives and SD cards. exFAT is intended to be a lightweight file system like FAT32 but without its limitations.

One of the most significant improvements that exFAT brings to the table is the support for large files and large volumes. Unlike FAT32, which has a maximum file size of 4 GB and a maximum volume size of 2 TB, exFAT can theoretically support files as large as 16 EB (exabytes) and volumes up to 128 PB (petabytes), which is a substantial increase and provides a considerable amount of scalability for future storage needs.

The exFAT filesystem features a simple structure, much like FAT32. It has a boot sector, a FAT region, and a data region. The boot sector contains information about the filesystem, like the volume's size, the size of the FAT, and the cluster size. The FAT region is a table that the filesystem uses to track which clusters are used by files and directories. The data region is where the actual file and directory data are stored.

One key aspect of exFAT is its cluster size that ranges from 4 KB to 32 MB, which can be adjusted based on the volume size. This flexibility allows for efficient storage allocation, minimizing the unused space within a cluster, also known as slack space.

exFAT introduces a file allocation bitmap in the FAT region, which serves as a quick reference for the allocation status of clusters. This bitmap improves the allocation and deletion performance of large files compared to FAT32. Additionally, exFAT supports a larger number of files per directory than FAT32.

Another significant feature of exFAT is the support for access control lists (ACLs), which is not present in FAT32. ACLs allow for basic permissions to be set on files and directories, offering a degree of security that was lacking in previous FAT versions.

The filesystem also includes provisions for timestamps for file creation, last modification, and last accessed, with a granularity of 10 milliseconds. Unlike FAT32, exFAT does not have a fixed limit on the number of entries in the root directory, allowing for more files and directories at the root level.

Defragmentation performance is also improved in exFAT. Since it does not need to reserve a fixed number of FAT entries for the root directory, it reduces the fragmentation issues that plagued FAT32, particularly with the root directory.

exFAT is designed to be used where NTFS is not feasible due to data structure overhead, or where file size limitations of FAT32 make it unsuitable. It has become increasingly popular for use in consumer electronic devices, such as cameras and smartphones, due to its simplicity and compatibility across various platforms, including Windows, macOS, and devices supporting SDXC standards.

Despite its advantages, the proprietary nature of exFAT means that implementing support for it requires licensing from Microsoft, which has been a point of contention in the open-source community. However, Microsoft has made exFAT support available to the open-source community, which has allowed for broader adoption in non-Windows operating systems.

In summary, exFAT is a modern filesystem that bridges the gap between the older FAT32 filesystem and more complex filesystems like NTFS. It combines the lightweight structure and ease of use of FAT32 with the large volume and file size support that modern applications require.