Qwiki

ext4 File System

The ext4 file system, part of the family of extended file systems, is a journaling file system primarily used by the Linux operating system. It is the fourth version in the lineage that began with the original ext file system and was followed by ext2 and ext3. The ext4 file system was designed to improve upon the limitations of ext3, offering increased speed, capacity, and reliability.

History

The development of ext4 began as an incremental improvement over its predecessor, ext3. It was spearheaded by Theodore Ts'o, a prominent figure in the Linux community. Ext4 was officially introduced in the Linux kernel version 2.6.19, released in 2006. Over time, it became the default file system for many Linux distributions, such as Ubuntu, Fedora Linux, and Arch Linux.

Features

Journaling

A key feature of ext4, as with ext3, is its use of journaling. Journaling enhances the reliability of the file system by keeping a log of changes that are to be made. This ensures that in the event of a system crash or power failure, the file system can be quickly restored to a consistent state without a lengthy check of the entire disk.

Extents

Ext4 introduces a new method of storing file data called extents. An extent is a descriptor that represents a range of contiguous blocks, reducing the extent of fragmentation and improving large file performance. This is a significant improvement over the traditional block-mapping scheme used by ext3.

Backward Compatibility

Ext4 maintains backward compatibility with ext3 and ext2. This allows systems to upgrade from ext3 to ext4 without the need to reformat their partitions. However, to take full advantage of ext4's features, a conversion process is recommended.

Delayed Allocation and Persistence

The file system uses a technique called delayed allocation to increase performance by optimizing the order in which disk blocks are written. Additionally, ext4 supports persistent pre-allocation, which reserves space for a file in advance, reducing file system fragmentation.

Maximum Filesystem and File Sizes

Ext4 supports larger filesystem sizes than its predecessors, with a maximum filesystem size of 1 exbibyte and a maximum file size of 16 tebibytes, assuming a block size of 4 kibibytes.

Usage in Linux

Within the context of Linux, ext4 has become the default file system for many distributions due to its robust performance and extensive feature set. The Linux kernel incorporates ext4 as a native file system, ensuring seamless operation with other components of the system.

Configuration and Maintenance

For managing ext4 file systems, tools from the e2fsprogs package, maintained by Theodore Ts'o, are commonly used. These tools provide utilities for creating, checking, and adjusting ext4 file systems as needed.

Related Topics

By offering a balance between performance, reliability, and compatibility, ext4 remains a crucial component in the ecosystem of Unix-like operating systems.