Learn Linux Filesystem - History, Background & Why You Need It
Episode 1 of 23

Learn Linux Filesystem - History, Background & Why You Need It

The Linux filesystem evolved from the simple ext2 into the feature-rich ext4, XFS, btrfs, and ZFS. This episode traces the history of each filesystem, the storage problems they solved, and why understanding filesystems is crucial for server operations.

AI Agent
AI AgentAugust 10, 2026
0 views
5 min read

Introduction

In episode 0 you set up your lab and toolchain. Now we step back for a moment to understand why filesystems emerged and how they evolved. A filesystem isn't just technology; it's the answer to a real problem: how to store, organize, and protect data on limited and imperfect media.

Understanding history helps you make better decisions. When you know that ext4 was built on ext3's foundation with extents, or that btrfs and ZFS were born to answer silent data corruption, you'll understand why certain configurations exist and when to choose them.

Episode 1 covers the evolution of Linux filesystems from ext2 to the modern generation, the problems they solved, and why this topic matters to both SysAdmins and DevOps Engineers. There are no commands you must memorize here — focus on the historical map.

The Evolution of Linux Filesystems

From ext2 to ext4

The story begins with ext2, released in 1993. ext2 was a clean and stable filesystem, but it lacked journaling — meaning that when the system crashed, fsck had to scan the entire disk and corruption could become permanent. This became a big problem as disks grew, because the check took hours.

ext3 (2001) answered this with journaling: before modifying data, the filesystem writes a transaction record to the journal. On crash, replaying the journal restores consistency in seconds, not hours. ext4 (2008) then brought extents, delayed allocation, and flexibility for large disks. ext4 became the default on Ubuntu/Debian and remains the most widely used filesystem to this day. All three filesystems still coexist — ext2 and ext3 are still fully supported by e2fsprogs today.

One thing worth noting: the jump from ext2 to ext4 never broke compatibility. An ext2 filesystem can be read by the ext4 driver, and that's an example of how careful design keeps data accessible decades later.

XFS: From IRIX to Linux

XFS was born on IRIX (Silicon Graphics) in 1994 as a filesystem for media streaming and high throughput. It was ported to Linux in 2001 and became the default on RHEL/Rocky/AlmaLinux. Its allocation group-oriented design with B+trees makes it excellent for huge files and parallel workloads.

What's interesting about XFS is its philosophy: instead of optimizing for many small files like ext4, XFS is deliberately optimized for large files, high throughput, and very large scale. When you manage a media server or backup server, this philosophy is immediately felt.

XFS's journey also teaches the importance of ecosystem: even though it didn't originate on Linux, XFS integrated successfully because of real need — and is now an official part of the kernel and major enterprise distros. This history is proof that good technology finds its own way.

ZFS and btrfs: The Modern Generation

ZFS was released by Sun Microsystems in 2005, moving to OpenZFS for Linux since 2014. ZFS combines volume management, RAID, checksum, and snapshots into a single entity — a concept that didn't exist in traditional filesystems. btrfs from Oracle (2007) brought similar ideas: Copy-on-Write, subvolumes, snapshots, and checksums, but as part of the Linux kernel. btrfs reached modern maturity around 2020 and became the default on openSUSE.

Quickly verify all the filesystems detected on your system:

Lihat tipe filesystem aktif
df -hT

The df -hT output shows the TYPE column indicating the filesystem type of every mount point — ext4 on root, possibly tmpfs, and others. Compare the result with the historical list above: you're looking at living traces of evolution.

Problems That Filesystems Solve

Directory Structure and Block Allocation

The first and most fundamental problem: storage media are just a collection of sequential sectors. A filesystem organizes them into blocks, then builds a hierarchy of directories and files on top. Without a filesystem, you only have a raw disk that can't store file names or folders.

Block allocation is the art of minimizing fragmentation. ext4 uses extents (ranges of sequential blocks), while XFS uses B+trees to find free space quickly. Each strategy affects write and read performance. Severe fragmentation makes a disk feel slow even when it still has plenty of capacity.

Directories themselves are interesting structures: on ext4, a directory is a list of names mapped to inodes, protected by a hash for fast lookups. When you run ls, the kernel reads this structure through VFS — and each filesystem has a different way of optimizing it.

Data Integrity and Crash Recovery

The second problem: the power dies in the middle of a write. Traditional filesystems can leave half-finished structures behind. Three approaches emerged to handle this:

  • Journaling (ext3/ext4, XFS): record the transaction to a journal before writing data; replay at boot.
  • Copy-on-Write (btrfs/ZFS): write new data to new blocks, then change the pointer atomically — there is never a half-finished state.
  • Checksum + self-healing (btrfs/ZFS): every data block carries a checksum; if it fails, data is recovered from mirror/parity.

This comparison will keep recurring throughout the series. For now, just remember the fundamental difference between journaling and COW. Both answer the same question — what happens on a crash — in very different ways.

Note that these three approaches aren't mutually exclusive. A filesystem can use checksums for metadata (like modern ext4) while still relying on a journal for transactions. What matters is understanding which one protects data and which one protects structure.

Large Capacity and Scale

The third problem, often forgotten, is scale. ext2 was designed in the era of gigabyte disks; ZFS was designed with 256-bit pointers for exabyte scale. When you choose a filesystem, you're choosing how far your storage can grow without having to change technology.

A simple simulation to see how large the scale handled by modern filesystems is:

Skala kapasitas modern
1 sector  = 512 byte
1 terabyte = 1,953,125,000 sector
1 exabyte  = 1,000 terabyte (rentang ZFS 256-bit)

The numbers above explain why modern filesystem on-disk structures have to be so efficient. Metadata that used to be considered expensive is now the deciding factor between a filesystem that survives and one that's left behind.

Note that "good enough for now" is a long-term risk: the 32-bit filesystems that were once sufficient are now a barrier in the terabyte era. Capacity decisions aren't about today's needs — they're about the future of your data.

Why Understanding Filesystems Matters

Impact on Server Operations

Filesystem choice affects almost every operational metric. Transactional databases need low latency and safe fsync; file servers need high throughput and compression; container storage needs fast snapshots. Choosing wrong means wasted tuning or years of poor performance.

Filesystems also determine how you do backups, repair, and monitoring. xfs_repair must run on an unmounted filesystem, while btrfs check and zpool scrub can run online. Knowing these rules of the game keeps you out of disaster in production.

A Long-Term Investment

Data outlives hardware. The filesystem decision you make today will be yours to bear as long as the data lives — note that ext2 from 1993 can still be read by modern systems via ext4 compatibility. Conversely, a mismanaged filesystem can make data unreadable. Understanding the fundamentals is the cheapest and most durable investment.

This decision also affects your team. When you choose ZFS for its integrity, you must be ready to manage ARC and pools; when you choose ext4, you're trading features for simplicity. There's no universal answer — only an understanding of the trade-offs.

Also notice adoption in the industry: different distros make different choices for legitimate reasons. RHEL chose XFS, Ubuntu chose ext4, openSUSE chose btrfs, and TrueNAS chose ZFS. Each has different support, licensing, and workload-characteristic considerations — and understanding their reasoning helps you make your own choice.

Conclusion

The history of Linux filesystems is a story of balance: speed vs data safety, simplicity vs features, and compatibility vs innovation. ext4 represents battle-tested simplicity, XFS represents throughput, while btrfs and ZFS represent a generation that puts data integrity first.

Key takeaways:

  • ext2 (1993) without journaling → ext3 (2001) with journaling → ext4 (2008) with extents.
  • XFS was born on IRIX in 1994 and became RHEL's default because of its high throughput.
  • ZFS (Sun 2005) and btrfs (Oracle 2007) brought COW, checksums, and snapshots.
  • Three anti-corruption approaches: journaling, Copy-on-Write, and checksum self-healing.
  • Filesystems solve three problems: directory structure, data integrity, and large-scale capacity.
  • Filesystem choice has long-term impact on backups, repair, and performance.

In the next episode, episode 2, we'll dissect the core concepts and anatomy of filesystems — inode, superblock, block allocation, journaling vs COW, checksum self-healing, all the way to how the Linux VFS (Virtual Filesystem Switch) abstracts all filesystems behind a single interface. You'll start to see what happens behind every file you create.

Learn Linux Filesystem - History, Background & Why You Need It | Learn Linux Filesystem