Ext4

**ext4** (**fourth extended filesystem**) is a journaling file system for Linux, developed as the successor to ext3.

ext4 was initially a series of backward-compatible extensions to ext3, many of them originally developed by Cluster File Systems for the Lustre file system between 2003 and 2006, meant to extend storage limits and add other performance improvements. However, other Linux kernel developers opposed accepting extensions to ext3 for stability reasons, and proposed to fork the source code of ext3, rename it as ext4, and perform all the development there, without affecting existing ext3 users. This proposal was accepted, and on 28 June 2006, Theodore Ts'o, the ext3 maintainer, announced the new plan of development for ext4.

A preliminary development version of ext4 was included in version 2.6.19 of the Linux kernel. On 11 October 2008, the patches that mark ext4 as stable code were merged in the Linux 2.6.28 source code repositories, denoting the end of the development phase and recommending ext4 adoption. Kernel 2.6.28, containing the ext4 filesystem, was finally released on 25 December 2008. On 15 January 2010, Google announced that it would upgrade its storage infrastructure from ext2 to ext4.

**ext4** (**fourth extended filesystem**) is a journaling file system for Linux. ext4 is the default filesystem for many distributions, such as Debian and Ubuntu. It is made to use as much of the space available as possible. The file system is also used on FreeBSD and other UNIX based operating systems.

## Other websites

- ext4 documentation in Linux kernel source
- Theodore Ts'o's discussion on ext4, 29 June 2006
- "ext4 online defragmentation"  (materials from Ottawa Linux Symposium 2007)
- "The new ext4 filesystem: current status and future plans" (materials from Ottawa Linux Symposium 2007)
- Kernel Log: Ext4 completes development phase as interim step to btrfs, 17 October 2008
- "Ext4 block and inode allocator improvements"  (materials from Ottawa Linux Symposium 2008)
- "Ext4: The Next Generation of Ext2/3 Filesystem"
- Ext4 (and Ext2/Ext3) Wiki
- Ext4 wiki at kernelnewbies.org
- Native Windows port of Ext4 and other FS in CROSSMETA
- Ext2read A windows application to read/copy ext2/ext3/ext4 files with extent and LVM2 support.
- Ext2Fsd Open source ext2/ext3/ext4 read/write file system driver for Windows. ext4 is supported from version 0.50 onwards
- Ext4fuse Open source read-only ext4 driver for FUSE. (Supports Mac OS X 10.5 and later, using MacFuse)
- oracle post Understanding ext4 disk layout

## Infobox (file system)

- **name**: ext4
- **full name**: Fourth extended file system
- **developer**: Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh, others
- **introduction os**: Linux 2.6.19
- **introduction date**: 10 October 2006
- **preceded by**: ext3
- **partition id**: : Master Boot Record, MBR / Extended Boot Record, EBR.

: GUID Partition Table, GPT Windows Basic Data Partition, BDP.

: GPT Linux filesystem data.

: GPT /home partition.

: GUID Partition Table, GPT /srv (server data) partition.
- **directory struct**: Linked list, hashed B-tree
- **file struct**: Extents / Bitmap
- **bad blocks struct**: Table
- **max filename size**: 255 bytes (fewer for multibyte character encodings such as Unicode)
- **max files no**: 4 billion (specified at filesystem creation time)
- **max volume size**: 1 exbibyte, EiB
- **max file size**: 16–256 Tebibyte, TiB (for 4–64 kibibyte, KiB block size)
- **filename character set**: All characters and character sequences permitted, except for Null character, NULL ('\0'), '/', and the special file names "." and ".." which are reserved for indicating (respectively) current and parent directories.
- **dates recorded**: modification (mtime), data or attribute modification (ctime), access (atime), delete (dtime), create (crtime)
- **date range**: 14 December 1901 – 10 May 2446
- **date resolution**: Nanosecond
- **forks streams**: No
- **attributes**: acl, bh, bsddf, commit=nrsec, data=journal, data=ordered, data=writeback, delalloc, extents, journal_dev, mballoc, minixdf, noacl, nobh, nodelalloc, noextents, nomballoc, nombcache, nouser_xattr, oldalloc, Orlov block allocator, orlov, user_xattr
- **file system permissions**: Unix permissions, Access-control list#POSIX ACL, POSIX ACLs
- **compression**: No
- **encryption**: Yes
- **single instance storage**: No
- **license**: GPLv2