Why This Matters
File systems are the architecture that determines how your operating system stores, retrieves, and protects data. When you're tested on this material, you're not just naming file systems. You're expected to understand why different systems exist and what trade-offs they make. The core concepts include journaling for crash recovery, metadata management, storage efficiency, and platform-specific optimization.
File systems are the organizational strategy for your hard drive. Some prioritize compatibility across devices, others prioritize data integrity through journaling, and newer systems optimize for flash storage characteristics. Don't just memorize which OS uses which file system. Know what problem each one solves and why an administrator might choose one over another.
Legacy and Compatibility-Focused Systems
These file systems prioritize broad compatibility over advanced features. They're readable by almost anything, but they come with significant limitations.
The trade-off: maximum portability comes at the cost of modern features like journaling, large file support, and security.
FAT (File Allocation Table)
- Universally compatible and readable by virtually every operating system, making it the default choice for USB drives and memory cards
- The File Allocation Table structure tracks file locations in a simple table at the beginning of the volume. Each entry maps to a cluster and points to the next cluster in the chain. This design is straightforward but causes fragmentation as files are created and deleted, since free clusters get scattered across the disk.
- Size limitations cap individual files at 4 GB and volumes at 2 TB (under FAT32), making it unsuitable for modern large-file workflows like video or disk images
ReiserFS
- Small file optimization was its claim to fame. It handled large numbers of small files efficiently through a technique called tail packing, which stores the ends of small files together in shared blocks rather than wasting a full block on each.
- Dynamic inode allocation creates inodes on demand rather than pre-allocating a fixed number at format time, improving space efficiency
- Legacy status today. While historically significant for Linux, it's rarely deployed in new systems as ext4 and Btrfs have absorbed its advantages.
Compare: FAT vs. ReiserFS are both largely legacy systems, but for opposite reasons. FAT survives due to universal compatibility despite poor performance; ReiserFS offered excellent small-file performance but lost relevance as other systems caught up. If a question asks about cross-platform storage, FAT is your answer.
Journaling File Systems for Data Integrity
Journaling file systems maintain a log (journal) of changes before committing them to disk. If the system crashes mid-write, the journal enables recovery without a full disk scan.
The mechanism works in two phases:
- Write the intended changes to the journal first
- Execute the actual writes to disk
- Mark the journal entry as complete
On crash recovery, the system replays incomplete journal entries or discards them, bringing the file system back to a consistent state in seconds rather than the minutes or hours a full fsck-style scan would take.
NTFS (New Technology File System)
- Windows standard since Windows NT, supporting volumes up to 16 exabytes and individual files up to 16 TB in practice
- Journaling and security features include file-level permissions through Access Control Lists (ACLs), built-in encryption via the Encrypting File System (EFS), and transaction logging for crash recovery
- Advanced capabilities like disk quotas, sparse files, hard links, and alternate data streams make it suitable for enterprise Windows environments
ext4 (Fourth Extended File System)
- Linux default for most distributions, supporting files up to 16 TB and volumes up to 1 exabyte
- Extents-based allocation replaced the indirect block mapping used in ext3. Instead of tracking every single block individually, an extent records a starting block and a length, reducing metadata overhead and improving large-file performance significantly.
- Backward compatible with ext3 and ext2, allowing administrators to mount or upgrade older file systems without reformatting
XFS
- High-performance parallel I/O was the design goal from the start. SGI built XFS for media and enterprise workloads requiring massive throughput across multiple threads.
- Scalability focus supports file systems up to 8 exabytes with efficient handling of large files and concurrent access through allocation groups, which are independent regions of the disk that can be written to simultaneously
- Delayed allocation holds off on assigning disk blocks until data is actually flushed from memory, allowing the allocator to make smarter placement decisions and reduce fragmentation
JFS (Journaled File System)
- Low CPU overhead was IBM's primary design goal. JFS is well-suited for systems with limited processing power because its journaling and allocation algorithms are lightweight.
- Extent-based allocation groups contiguous blocks together for better sequential read/write performance, similar to ext4's approach
- Enterprise heritage from IBM's AIX means robust large-volume support, though JFS is less common in modern Linux deployments
Compare: ext4 vs. XFS are both journaling file systems for Linux, but ext4 prioritizes general-purpose reliability and compatibility while XFS optimizes for parallel I/O and large files. For a question about a video editing workstation or a high-throughput server on Linux, XFS is the better answer. For a general-purpose desktop or a system that needs backward compatibility with ext3, ext4 wins.
These file systems are tightly integrated with their parent operating systems, trading cross-platform compatibility for deep OS integration and optimized performance.
The principle: when you control both the OS and the file system, you can optimize for specific hardware and use cases.
HFS+ (Hierarchical File System Plus)
- macOS legacy standard that supported large files and journaling before APFS replaced it
- Case handling flexibility allows both case-sensitive and case-insensitive configurations depending on how the volume was formatted. Most macOS installations use case-insensitive mode, meaning "Report.txt" and "report.txt" are treated as the same file.
- Metadata-rich design stores extensive file attributes that power features like Spotlight search and Finder integration
APFS (Apple File System)
- Flash/SSD optimized from the ground up. Apple designed APFS specifically for solid-state storage, accounting for characteristics like wear leveling and the performance profile of NAND flash.
- Space sharing allows multiple volumes within a container to draw from a single shared pool of storage, dynamically allocating space as needed rather than requiring fixed partition sizes
- Native encryption and snapshots provide security and Time Machine backup support at the file system level. APFS also supports cloning, which creates instant file copies that share underlying storage blocks until one copy is modified.
Compare: HFS+ vs. APFS are both Apple-exclusive, but APFS is a ground-up redesign for flash storage rather than spinning disks. The key distinction: APFS supports cloning (instant zero-cost copies) and snapshots natively, and its space sharing model eliminates the rigid partitioning that HFS+ required.
Advanced Copy-on-Write Systems
Copy-on-write (COW) file systems never overwrite data in place. Instead, they write modified data to a new location on disk and then update the pointers. This preserves previous states automatically and enables powerful features like snapshots and self-healing.
Why this matters: because the old data is never overwritten, you can always roll back. And because every write goes to a new location, a crash during a write can never corrupt existing data.
ZFS (Zettabyte File System)
- Combined volume manager and file system in one integrated layer. ZFS handles storage pooling, redundancy, and file organization together, eliminating the need for a separate volume manager like LVM.
- Data integrity verification uses checksums on all data and metadata. When ZFS detects a checksum mismatch during a read, it can automatically repair the corruption from a redundant copy. This self-healing capability is one of ZFS's defining features.
- Enterprise-grade features include snapshots, clones, transparent compression, deduplication, and native RAID (called RAID-Z) without requiring hardware RAID controllers
Btrfs (B-tree File System)
- Linux-native COW system designed as a modern alternative to ext4 with ZFS-like features, released under the GPL license (which matters because ZFS's CDDL license creates compatibility issues with the Linux kernel)
- Subvolumes and snapshots allow flexible partitioning and instant backups without traditional volume management. A subvolume behaves like an independent file system but shares the same underlying storage pool.
- Built-in RAID and checksumming provide data protection, though RAID 5/6 implementations are still considered experimental and not recommended for production use
Compare: ZFS vs. Btrfs are both copy-on-write systems with snapshots and checksumming, but ZFS is more mature and feature-complete while Btrfs is GPL-licensed and Linux-native. For questions about data integrity and self-healing storage, ZFS is the canonical example. For questions about a COW file system that integrates cleanly with the Linux kernel's licensing, Btrfs is the answer.
Quick Reference Table
|
| Universal compatibility | FAT |
| Windows standard with security | NTFS |
| Linux general-purpose | ext4 |
| High-performance parallel I/O | XFS |
| Flash/SSD optimization | APFS |
| Copy-on-write with self-healing | ZFS, Btrfs |
| Integrated volume management | ZFS |
| Apple ecosystem | HFS+, APFS |
| Low CPU overhead | JFS |
| Small file optimization (legacy) | ReiserFS |
Self-Check Questions
-
Which two file systems use copy-on-write architecture and support automatic data integrity verification through checksumming?
-
A system administrator needs to format a USB drive that will be used across Windows, macOS, and Linux machines. Which file system should they choose, and what limitation will they face?
-
Both ext4 and XFS are Linux journaling file systems. When would you specifically recommend XFS over ext4?
-
What distinguishes APFS from its predecessor HFS+, and why did Apple make this change?
-
FRQ-style prompt: Explain how journaling improves crash recovery compared to non-journaling file systems. Identify two file systems that implement journaling and describe one additional feature each provides beyond basic journaling.