Types-of-Linux-File-System.png

  1. ext (Extended File System): The first file system specifically designed for linux, implemented in 1992.
  2. ext2: A non-journaling file system that is preferred to be used with flash drives and SSDs.
  3. Xiafs: A file system less powerful and functional than ext2 that it is no longer used anywhere.
  4. ext3: A reliable file system and unlike ext2, it prevents long delays at system boot if the file system is in an inconsistent state after an unclean shutdown.
  5. JFS: JFS performs well under different kinds of load but is not commonly used anymore due to the release of ext4 in 2006 which gives better performance.
  6. ReiserFS

Despite its earlier issues, it has tail packing as a scheme to reduce internal fragmentation. It uses a B+ Tree that gives less than linear time in directory lookups and updates. It was the default file system in SUSE Linux till version 6.4, until switching to ext3 in 2006 for version 10.2.

  1. XFS

Used as the default file system for many Linux distributions. It provides features like snapshots, online defragmentation, sparse files, variable block sizes, and excellent capacity. It also excels at parallel I/O operations.

  1. SquashFS: Developed in 2002, this file system is read-only and is used only with embedded systems where low overhead is needed.
  2. Reiser4: It is an incremental model to ReiserFS.

However, it is not widely adapted or supported on many Linux distributions.

  1. ext4

The fourth ext developed in 2006, is a journaling file system. It has backward compatibility with ext3 and ext2 and it provides several other features, some of which are persistent pre-allocation, unlimited number of subdirectories, metadata checksumming and large file size. ext4 is the default file system for many Linux distributions and also has compatibility with Windows and Macintosh.

  1. btrfs (Better/Butter/B-tree FS)

btrfs provides many features such as snapshotting, drive pooling, data scrubbing, self-healing and online defragmentation. It is the default file system for Fedora Workstation.

  1. bcachefs

This is a copy-on-write file system that was first announced in 2015 with the goal of performing better than btrfs and ext4. Its features include full filesystem encryption, native compression, snapshots, and 64-bit check summing.

  1. Others

Linux also has support for file systems of operating systems such as NTFS and exFAT, but these do not support standard Unix permission settings. They are mostly used for interoperability with other operating systems.

<aside> ❓ ext4 has been the main file system developers use despite other systems being better such as btrfs and XFS; but why?

</aside>

EXT4

ext4 was designed to be backward compatible with ext3 and ext2. It’s better than the previous generations in the following ways:

Limitations

Ext4 does not guarantee the integrity of your data. If the data is corrupted while already on disk then it has no way of detecting or repairing such corruption.

It cannot secure deletion of files, which is supposed to cause overwriting of files upon deletion. This results in sensitive data ending up in the file-system journal.

Comparisons

XFS performs highly well for large filesystems and high degrees of concurrency. So XFS is stable, yet there’s not a solid borderline that would make you choose it over ext4 since both work about the same. Unless you want a file system that directly solves a problem of ext4 like having capacity > 50TiB.

Despite btrfs offering features like multiple device management, per-block checksumming, asynchronous replication and inline compression, it does not perform the best in many common use cases as compared to ext4 and XFS. Several of its features can be buggy and result in reduced performance and data loss.