Ext4

ext4
Developer(s)Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh, others
Full nameFourth extended file system
Introduced10 October 2006 with Linux 2.6.19
Preceded byext3
Partition IDs0x83: MBR / EBR.

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7: GPT Windows BDP.[1]
0FC63DAF-8483-4772-8E79-3D69D8477DE4: GPT Linux filesystem data.[1]
933AC7E1-2EB4-4F13-B844-0E14E2AEF915: GPT /home partition.[2]

3B8F8425-20E0-4F3B-907F-1A25A76F98E8: GPT /srv (server data) partition.
Structures
Directory contentsLinked list, hashed B-tree
File allocationExtents / Bitmap
Bad blocksTable
Limits
Max volume size1 EiB
Max file size16-256 TiB (for 4-64 KiB block size)
Max no. of files4 billion (specified at filesystem creation time)
Max filename length255 bytes (fewer for multibyte character encodings such as Unicode)
Allowed filename
characters
All bytes except NULL ('\0') and '/' and the special file names "." and ".." which are not forbidden but are always used for a respective special purpose.
Features
Dates recordedmodification (mtime), data or attribute modification (ctime), access (atime), delete (dtime), create (crtime)
Date range14 December 1901 - 10 May 2446[3]
Date resolutionNanosecond
ForksNo
Attributesacl, 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, user_xattr
File system
permissions
Unix permissions, POSIX ACLs
Transparent
compression
No
Transparent
encryption
Yes
Data deduplicationNo
Other
Supported
operating systems

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.[4] However, other Linux kernel developers opposed accepting extensions to ext3 for stability reasons,[5] 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.[6]

A preliminary development version of ext4 was included in version 2.6.19[7] 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,[8] 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.[9] On 15 January 2010, Google announced that it would upgrade its storage infrastructure from ext2 to ext4.[10] On 14 December 2010, Google also announced it would use ext4, instead of YAFFS, on Android 2.3.[11]

  1. ^ a b Previously, Linux used the same GUID for the data partitions as Windows (Basic data partition: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7). Linux never had a separate unique partition type GUID defined for its data partitions. This created problems when dual-booting Linux and Windows in UEFI-GPT setup. The new GUID (Linux filesystem data: 0FC63DAF-8483-4772-8E79-3D69D8477DE4) was defined jointly by GPT fdisk and GNU Parted developers. It is identified as type code 0x8300 in GPT fdisk. (See definitions in gdisk's parttypes.cc)
  2. ^ "DiscoverablePartitionsSpec". freedesktop.org. Retrieved 7 April 2018.
  3. ^ "ext4: Fix handling of extended tv_sec". Linux-stable kernel tree. Retrieved 14 February 2017.
  4. ^ Mathur, Avantika; Cao, MingMing; Bhattacharya, Suparna; Dilger, Andreas; Zhuravlev (Tomas), Alex; Vivier, Laurent (2007). "The new ext4 filesystem: current status and future plans" (PDF). Proceedings of the Linux Symposium. Ottawa, ON, CA: Red Hat. Archived from the original (PDF) on 6 July 2010. Retrieved 15 January 2008.
  5. ^ Torvalds, Linus (9 June 2006). "extents and 48bit ext3". Linux kernel mailing list.
  6. ^ Ts'o, Theodore (28 June 2006). "Proposal and plan for ext2/3 future development work". Linux kernel mailing list.
  7. ^ Leemhuis, Thorsten (23 December 2008). "Higher and further: The innovations of Linux 2.6.28 (page 2)". Heise Online. Archived from the original on 3 January 2009. Retrieved 9 January 2010.
  8. ^ "ext4: Rename ext4dev to ext4". Linus' kernel tree. Archived from the original on 29 May 2012. Retrieved 20 October 2008.
  9. ^ Leemhuis, Thorsten (23 December 2008). "Higher and further: The innovations of Linux 2.6.28". Heise Online.
  10. ^ Paul, Ryan (15 January 2010). "Google upgrading to Ext4, hires former Linux Foundation CTO". Ars Technica.
  11. ^ "Android 2.3 Gingerbread to use Ext4 file system". The H Open. 14 December 2010.