Linux file systems

XFS - development began in 1993, Silicon Graphics, in May 2000 appeared in the GNU GPL, for users of most Linux systems became available in 2001-2002. A distinctive feature of the system is its excellent support for large files and file volumes, 8 exbibytes - 1 byte (8 * 2 60 -1 bytes) for 64-bit systems. In addition, it has other important features - continuous areas of disk space, delayed allocation of space and online defragmentation. It is one of the oldest journaled file systems for * nix, and contains the most debugged, in this context, source code.

ReiserFS (Reiser3) - One of the first journaling file systems for Linux, developed by Namesys. It has some congenital headaches, but in general a good system, counting down its days since 2001. I make a reservation that the meaning of journaling systems is in disk transactions, which are sequentially written to a special zone of the disk (a journal, it is a log), before the data reaches the end points of the file system. The maximum volume volume for this system is 16 terabytes (16 * 2 40 bytes).

JFS (Journaled File System) - The file system, the brainchild of IBM, which appeared to the world back in 1990 for the AIX (Advanced Interactive eXecutive) OS. As the first stable release, for Linux users, the system became available in 2001. Of the advantages of the system - good scalability. Of the minuses - not particularly active support throughout the life cycle. The maximum volume size is 32 pebibytes (32 * 2 50 bytes).

ext (extended filesystem) - appeared in April 1992, it was the first file system made specifically for the needs of Linux OS. Developed by Remy Card to overcome the limitations of the Minix file system.

ext2 (second extended file system) - was developed by Remy Card in 1993. Non-journaling file system, it was its main drawback, which will fix ext3.

ext3 (third extended filesystem) is essentially a native extension for Linux ext2 capable of journaling. Developed by Stephen Tweedie in 1999, included in the main Linux kernel in November 2001. Compared to other colleagues, it has a more modest size of space, up to 4 terabytes (4 * 2 40 bytes) for 32-bit systems. It is currently the most stable and supported file system in the Linux environment.

Reiser4 - The first attempt to create a new generation file system for Linux. First introduced in 2004, the system includes advanced technologies such as transactions, space allocation delay, and a built-in ability to encode and compress data. Hans Reiser (Hans Reiser), the main developer of the system, advertised to use his brainchild directly as a database with improved metadata. After Hans Reiser was convicted of murder in 2008, the fate of the system became uncertain.

ext4 - An attempt to create a 64-bit ext3 capable of supporting a larger file system (1 exbibyte). Later opportunities were added - continuous areas of disk space, delayed allocation of space, online defragmentation and others. It provides direct compatibility with the ext3 system and limited backward compatibility with the inaccessible ability to contiguous areas of disk space.

UPD: Btrfs (B-tree FS or Butter FS) - A project originally started by Oracle, subsequently supported by most Linux systems. Many consider the system a kind of answer to ZFS. The key features of this file system are technologies: copy-on-write, which allows you to take snapshots of disk areas (snapshots), which can be useful for subsequent recovery; control over the integrity of data and metadata (with an increased guarantee of integrity); data compression; optimized mode for SSD drives (set during mounting) and others. An important factor is the ability to switch from ext3 to Btrfs. Since August 2008, this system has been released under the GNU GPL.

Tux2 - A well-known, but never announced publicly file system. Created by Daniel Phillips, the system is based on the Phase Tree algorithm, which, like journaling, protects the file system from crashes. Organized as an ext2 add-in.

Tux3 - stepping on the heels of Btrfs, a new file system is introduced. The system is based on FUSE (Filesystem in Userspace), a special module for creating file systems on * nix platforms. This project aims to get rid of the usual logging, instead offering versioned recovery (state in a certain period of time). The advantage of the versioned system used in this case is the method for describing changes, where for each file a modified copy is created, and the current version is not overwritten. This approach allows for more flexible version control.

UPD: Xiafs - The idea and development of this file system belongs to Frank Xia, based on the MINIX file system. Currently considered obsolete and almost never used. Along with ext2, it was developed as a replacement for ext. In December 1993, the system was added to the standard Linux kernel. And although the system was more stable and took up less disk space for control structures - it turned out to be weaker than ext2, the leading role was played by the limitations of the maximum file and partition sizes, as well as the ability to further expand.

UPD: ZFS (Zettabyte File System) - originally created in Sun Microsystems file system for the notorious Solaris operating system in 2005. Distinctive features are the lack of data fragmentation as such, the ability to manage snapshots, storage pools, variable block sizes, a 64-bit checksum mechanism, and the ability to address 128 bits of information! On Linux systems it can be used through FUSE.

Based on