Developer(s) | Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh, others |
---|---|
Full name | Fourth extended file system |
Introduced |
Stable: 21 October 2008 Unstable: 10 October 2006 with Linux 2.6.28, 2.6.19 |
Partition identifier |
0x83: MBR/EBR. |
Structures | |
Directory contents | Linked list, hashed B-tree |
File allocation | Extents/Bitmap |
Bad blocks | Table |
Limits | |
Max. volume size |
1 EiB |
Max. file size | 16 TiB (for 4k block filesystem) |
Max. number of files | 4 billion (specified at filesystem creation time) |
Max. filename length | 255 bytes |
Allowed characters in filenames | All bytes except NUL ('\0') and '/' and the special file names "." and ".." which are not forbidden but are always used for a respective special purpose. |
Features | |
Dates recorded | modification (mtime), attribute modification (ctime), access (atime), delete (dtime), create (crtime) |
Date range | 14 December 1901 - 10 May 2446 |
Date resolution | Nanosecond |
Forks | No |
Attributes | acl, bh, bsddf, commit=nrsec, data=journal, data=ordered, data=writeback, delalloc, extents, journal_dev, mballoc, minixdf, noacl, nobh, nodelalloc,noextents, nomballoc, nouser_xattr, oldalloc, orlov, user_xattr |
File system permissions | POSIX |
Transparent compression | No |
Transparent encryption | Yes |
Data deduplication | No |
Other | |
Supported operating systems |
Linux FreeBSD (read-only in kernel since version 10.1) Mac OS X (read-only with ext4fuse, full with ExtFS) Windows (Read/Write without journaling with ext2fsd) KolibriOS (read-only) |
0x83: MBR/EBR.
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7: GPT Windows BDP.
0FC63DAF-8483-4772-8E79-3D69D8477DE4: GPT Linux filesystem data.
933AC7E1-2EB4-4F13-B844-0E14E2AEF915: GPT /home partition.
1 EiB
The ext4 or fourth extended filesystem is a journaling file system for Linux, developed as the successor to ext3.
ext4 was born as 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 the current 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. On 14 December 2010, they also announced they would use ext4, instead of YAFFS, on Android 2.3.