Filesystems are something that we don't think about often but are integral to the daily use of our PCs. Though they aren't particularly flashy, having a good understanding of systems like NTFS, exFAT, FAT32, and beyond can help when formatting drives or installing operating systems. As a result, we're going to explore this topic in detail today.
What is a Filesystem?
At its base form, a file system is just a way to organize your drive. It determines the structure in which data is stored and retrieved. Without this structure, it would be very difficult to tell where one file ends and the other begins.
A filesystem, then, groups data into logical pieces (files), names them, attaches labels and metadata, and determines the permission system needed to access them. You can think of it as a carefully labeled filing cabinet rather than a single giant scroll filled with random unchronological notes.
Types of Filesystems
Broadly, file systems can be broken up into six categories:
Journaling filesystems are one of the most popular types. A journaled filesystem records the intended changes to data in a file known as a journal. By recording even changes in data structure that are yet to be committed, it can be utilized to repair inconsistencies caused by crashes or power failures.
In 1990 IBM JFS, introduced with AIX 3.1, was one of the first UNIX commercial filesystems that implemented journaling. This was subsequently implemented in Microsoft's Windows NT's NTFS filesystem in 1993 and in Linux's ext3 filesystem in 2001.
Some journaling systems only keep track of stored metadata (ordered-mode journaling) for performance reasons, others track both stored data and metadata (data-mode journaling). Though both of these methods can return the filesystem to a valid state, data-mode journaling offers the best protection against corruption.
FUSE-base file systems
FUSE, or Filesystem in Userspace is an interface typically for Unix and Unix-like OSes that allows non-privileged users to create their own file systems. Importantly, they can do so without editing kernel code by running the system code in user space with the FUSE kernel module acting as a bridge.
Stackable file systems
Rather than storing data itself, a stackable file system uses another file system for its storage. The file system it stacks on is known as the lower file system, while the stackable file system is known as the upper file system.
A read-only file system limits the user's actions to reading or copying stored data. They cannot add, edit, or otherwise modify data within the file system. Examples of read-only file systems include EROFS and SquashFX, both of which are designed to reduce file size and improve performance.
A clustered file system is mounted across several storage servers simultaneously but can be managed and interacted with as if it were one system. Deployment in this way provides several benefits, including redundancy if one filesystem fails and the ability to share available storage and hardware capacity.
A shared-disk filesystem is a type of clustered filesystem that uses a storage area network (SAN) spread across multiple computers for direct disk access at the block level. It is one of the most popular clustered file systems due to its strong ability to avoid corruption and data loss while providing a consistent view of the file system.
What's the Difference Between FAT32, NTFS, exFAT, HFS, EXT3, EXT4?
Operating systems would struggle to function without a filesystem. However, rather than a single, standard model, there are various options that excel in different areas. Windows currently supports three file systems: NTFS, FAT32, and exFAT. Let's dive into the differences between them, as well as some other file systems.
What is NTFS?
Let's start with the New Technology File System (NTFS), which, as you may have guessed, is the most modern of the major Windows file systems. NTFS comes with various improvements over older technologies, with improved reliability, disk space use, and performance. It makes use of journaling as well as Access Control Lists for a more robust security system. This, combined with its litany of other security features, has made it the default choice for Windows 10 installations.
What is FAT32?
FAT32 is a type of FAT file system that was designed to overcome the volume limitations of FAT16 and implement additional features without a significantly increased memory footprint. It's supported by nearly every operating system but comes with limitations such as a 4G max file size, 8 TB max partition size, and lack of modern permissions and security features. On the plus side, however, this allows it to be incredibly lightweight.
What is exFAT?
exFAT was introduced in 2006 and overcomes some of the limitations of its older sister, FAT32. It was designed to be lightweight, yet avoid file size and partition limits. This makes it suitable for flash drives that will be storing files that are more than 4GB.
What is HFS/HFS+?
HFS and HFS+ were created by Apple for its macOS filesystem. HFS+ replaced HFS in mac OS 8.1 (1998) but was eventually phased out in favor of the Apple File System in macOS High Sierra (2017). HFS+ is a journaling file system with various modern features, from large file support to hard links, and long file names. However, it lacks features from file systems such as NTSF, such as snapshotting nanosecond timestamps, and concurrent access.
What are ext3 and ext4?
The third and fourth extended filesystems, known as ext3 and ext4, are journaled file systems typically used in Linux distributions. ext3 was first introduced in 2001, and ext4 in 2006. Compared to ext3, ext4 is faster and has fewer storage limits. However, its developer notes that it still makes use of old technology and is a “stop-gap”. As well as being used on Linux, ext4 has been used in Android operating systems.
When choosing between several filesystems, it can be useful to compare them directly. Here are some of the choices users most often mull over:
exFAT vs NTFS
exFAT is an older filesystem added into Windows in 2006. It has wider compatibility than NTFS, which means it's more likely to work with media players, consoles, and a variety of operating systems. It also has a smaller footprint which makes it ideal for devices with limited processing power.
On the other hand, NTFS incorporates many modern features such as journaling, file compression, alternate data streams, and more. Overall, these additions make it more reliable than exFAT and able to better recover from a crash or other issue.
The bottom line, then, is that you should use NTFS for your system drives when you can, but exFAT is an excellent choice for removable media like USB drives. Its low overhead makes it efficient on flash memory and most users don't require NTFS' extra features in such a scenario.
NTFS vs FAT32
The difference between NTFS and FAT32 is similar to those mentioned above. FAT32, though, is even older than exFAT, and as such is lacking in even more features. Its main limitation is its inability to store individual files that are larger than 4GB. It also offers reduced security over NTFS, has less efficient file recovery/repair methods, and doesn't offer compression.
So, why would you ever use FAT32? The main reason is compatibility. Due to its age, FAT32 has support wider than even exFAT. There's a good chance it'll work perfectly on any device, from printers to media players, and TVs. For example, FAT32 formatted drives can be read and written by macOS devices, while NTFS can only be read. FAT32's benefits and drawbacks position it as a solid choice for a USB drive, but quite unsuitable for regular use in a PC.
FAT32 vs exFAT
If exFAT and FAT32 are both great for USB drives, which should you use? The answer, as you may expect, comes down to your use case.
As we mentioned earlier, FAT32 will work with pretty much any device you throw at it. exFAT may not work as well with older devices but will work on most modern ones. The PlayStation 3, for example, won't accept an exFAT drive, but the PS4 and PS5 will accept both. Some Linux distros won't support exFAT either, but you can easily fix this by running a command.
If you work a lot with older hardware, then, FAT32 might be your best bet. However, its file size limitations will make it a poor choice if you're planning to store large files. If you're using your USB stick to playback high-quality video, exFAT is the better choice. exFAT also tends to be slightly faster than FAT32, making it a no-brainer unless you use a device it's not compatible with.
ext4 vs NTFS
The arguments about ext4 vs NTFS have been raging online for decades now. Which is better largely depends on opinion. Both are suitable for everyday use, but it's worth noting that ext4 partitions aren't natively readable by Windows operating systems. Most commonly, then, it's used in Linux, and it does have a few advantages over NTFS.
For starters, ext4 allows you to add symbols such as “?” to file names. As a fully journaled filesystem, it also does not require fragmentation utilities and is much faster at checking disks.
However, NTFS also holds some advantages. Unlike ext4, it supports the secure deletion file attribute. It also supports secure encryption of any files or folder on its volume and can compress files to save disk space. It can read and write on all Windows versions, as well as many Linux and BSD distros, but is read-only on macOS.
That about rounds up this guide on the most common types of filesystems available today. If you remember anything, let it be that FAT32 and exFAT are likely your best bet for USB drives. If you're using Linux, you can use ext4 for your filesystem, but bear in mind that Windows devices won't be able to use it natively. If you're using Windows, NTFS is nearly always the best bet for your internal drives.
Table: The Most Important Filesystems
|Filesystem||Creator||Original OS||Max Filename Length|| |
Max File Size
|Max Volume Size|
|exFAT||Microsoft||Windows CE 6.0||255 UTF-16 characters|| |
|ext3||Stephen Tweedie||Linux||255 bytes|| |
|ext4||various||Linux||255 bytes|| |
|FAT32||Microsoft||MS-DOS 7.10 / Windows 95 OSR2||(255 UCS-2 characters with LFN)|| |
|HFS||Apple||System 2.1||31 bytes|| |
|HFS Plus||Apple||Mac OS 8.1||255 UTF-16 characters|| |
slightly less than 8 EB
|slightly less than 8 EB|
|NTFS||Microsoft||Windows NT 3.1||255 characters|| |