**Ext4** on Linux-ytimen tiedostojärjestelmä, joka on kehitetty parannuksena aiemmista ext3- ja ext2-tiedostojärjestelmistä. Tiedostojärjestelmä on kehitetty taaksepäin- ja eteenpäinyhteensopivana.

Kehitys
-------

Tiedostojärjestelmä kehitettiin parannuksena aiempaan ext3:een nähden: suorituskykyä, luotettavuutta ja kapasiteettia on parannettu.
Ext4 tukee journalointia kuten aiempi ext3:kin, sekä tukee useampaa journalointimoodia.
Ext4 lisää tarkistussummat metatiedolle ja journalille, aikaleimojen tarkkuutta on nostettu ja vuoden 2038 käsittely on korjattu vuoteen 2446 asti.
Tiedon varaus on muutettu kiinteäkokoisista lohkoista "extent"-lohkoiksi, joka mahdollistaa hyvin pitkien yhtenäisenä jatkuvien tiedostojen varaamisen.
Extent-lohkoja on käytetty aiemmin JFS-tiedostojärjestelmässä ja viivästetty varaus on ollut XFS- ja ZFS-tiedostojärjestelmissä.

Tiedostojärjestelmä tukee suuria taltioita ja tiedostokokoja: tiedostojärjestelmä käyttää 48-bittisiä lohkonumeroita, joka (oletuksena olevalla) 4 kilotavun lohkolla mahdollista 1 eksatavun (1024 petatavun) tiedostojärjestelmän. Kehityksen aikana todettiin että laajentaminen 64-bittisiin numeroihin ei ole ongelma tulevaisuudessa, mutta sille ei ole vielä tarvetta. Ext4:ssä lohko on ryhmä sektoreita, jonka koko voi olla 1 kilotavusta 64 kilotavuun.
Tiedoston maksimikoko on 16 teratavua.

Tiedostojärjestelmä on suunniteltu vähentämään fragmentaatiota. Tiedostojärjestelmä tukee "online-eheyttämistä" ja eheyden tarkistaminen (fsck) vaatii vähemmän aikaa.

Ext4 käyttää B-puun muunnosta H-puuta, joka mahdollistaa paljon suuremmat alihakemistot. Ext4:ssä alihakemistojen koko on lähes rajoittamaton.

Tiedostojärjestelmään on integroitu tuki salaukselle.

Ytimen kehittäjät tyrmäsivät ehdotukseen, että uusia ominaisuuksia olisi lisätty ext3:een. Ext4 on tämän vuoksi forkattu ext3:sta jotta sen käyttäjille ei koidu häiriötä.
Vanhoja ext2- ja ext3-tiedostojärjestelmiä voi käyttää ext4:n kautta, mutta silloin ei voida käyttää sen parannuksia hyödyksi. Ext4:n kautta aiempaa tiedostojärjestelmää voi käyttää yhteensopivana, jolloin vain uudet tiedostot käyttävät uudempaa tallennustapaa ja vanhat pysyvät vanhalla tallennuksella.

Julkaisu
--------

Tiedostojärjestelmä merkittiin vakaaksi versioksi lokakuussa 2008. Tiedostojärjestelmä oli mukana ytimessä versiosta 2.6.19 lähtien mutta oli merkittynä kokeelliseksi versioon 2.6.27 saakka: versiosta 2.6.28 lähtien tiedostojärjestelmä on merkitty vakaaksi.

Google ilmoitti joulukuussa 2010 Androidin siirtyvän versiossa 2.3 YAFFS-tiedostojärjestelmästä ext4:ään. Ext4 on ollut oletuksena Fedoran versiosta 14 lähtien. Fedora 33:ssa oletukseksi muuttui Btrfs.

Lähteet
-------

1. 1 2  Ext4: The Next Generation of Ext2/3 Filesystem (PDF) *usenix.org*.  2007. Viitattu 12.2.2020. (englanniksi)
2. 1 2 3 4  M. Tim Jones: Anatomy of Linux journaling file systems  4.6.2008. IBM Developerworks. Viitattu 29.5.2019. (englanniksi)
3. 1 2 3 4 5 6  An introduction to Linux's EXT4 filesystem *opensource.com*.  25.5.2017. Viitattu 12.2.2020. (englanniksi)
4. 1 2 3 4 5  Archived - Anatomy of ext4 *developer.ibm.com*.  17.2.2009. Viitattu 12.2.2020. (englanniksi)
5. 1 2 3 4  Dr. Oliver Diedrich: The Ext4 Linux file system *h-online.com*.  29.5.2009. Viitattu 12.2.2020. (englanniksi)
6. 1 2  2.1. Blocks *kernel.org*. Viitattu 12.2.2020. (englanniksi)
7. ↑  Filesystem-level encryption (fscrypt) *kernel.org*. Viitattu 12.2.2020. (englanniksi)
8. ↑  Linus Torvalds: Re: [Ext2-devel] [RFC 0/13] extents and 48bit ext3 *lkml.org*.  9.6.2006. Viitattu 12.2.2020. (englanniksi)
9. ↑  ext4: Rename ext4dev to ext4 *git.kernel.org*.  11.10.2008.  Arkistoitu 29.5.2012. Viitattu 12.2.2020. (englanniksi)
10. ↑  Android 2.3 Gingerbread to use Ext4 file system *h-online.com*.  14.12.2010. Viitattu 12.2.2020. (englanniksi)
11. ↑  Approved: Fedora 33 Desktop Variants Defaulting To Btrfs File-System *phoronix.com*.  15.7.2020. Viitattu 16.7.2020. (englanniksi)

Aiheesta muualla
----------------

* ext4 Data Structures and Algorithms (englanniksi)
* Ext4 block and inode allocator improvements (PDF) (englanniksi)