# Ext3

ext3 edo third extended filesystem (hedatutako hirugarren fitxategi sistema) Linux sistema eragileetan gero eta gehiago erabiltzen den eta eguneroko erregistroa gordetzen duen fitxategi sistema da. Red Hat Linux, Fedora Core, Debian eta Ubuntu Linux banaketek lehenesten duten fitxategi sistema da.
Bere errendimendua eta eskalagarritasuna ReiserFS eta XFS sistemena baino baxuagoa den arren, ext2 sistema batetik formatua aldatu gabe migratzeko aukera ematen duela da bere abantaila nagusia.

## Historia

Ext3 fitxategi-sistema 2001eko azaroan agertu zen ofizialki, 2.4.15 kernelean hain zuzen. Ext2rekin alderatuta, bertsio berri honek erregistrodun fitxategi-sistemetan (journaling fitxategi-sistema bezala ere ezagutzen dira) murgildu zuen erabiltzailea, eraginkortasun eta segurtasun aldetik aldaketa nabarmena izanik.
Gaur egun, GNU/Linux banaketetan errotuta dagoen fitxategi-sistema da ext3, nahiz eta hainbat alternatiba izan fitxategi-sistema lokalen esparruan, bakoitza helburu ezberdinetara bideratuta: ReiserFS, XFS, JFS, ...
Software Librearen munduan hobekuntzek ez daukatenez mugarik, 2006ko urritik aurrera, 2.6.19 kernelarekin batera, ext4 (fourth extended filesystem) fitxategi-sistema erabilgarri dago. Honen ezaugarri nagusia extent (hedadura) euskarria da. Ezaugarri honen bitartez, fitxategi bat idazten hasi eta beste edozein idazketa eragiketaren bat egin ondoren, fitxategian berriro idatzi nahi denean utzitako lekutik aurrera jarraituko da, fragmentazioaren arazoa substantzialki txikituz.

## Egitura

Ext3 fitxategi-sistemak bere baitan hartzen ditu UNIX fitxategi-sistema tradizionalen ezaugarri komunak: bloke, inodo edo direktorio bezalako kontzeptuak ditu. Era berean, Atzipen-kontrolerako Listak (ACL, Access Control Lists) onartzen ditu. Ezberdintasunen bat aipatzearren, ext3 fitxategi-sistemak inodo bakoitzeko 10 zuzeneko erakusle izan beharrean, 12 ditu. Gainera, journaling edo erregistroa dauka.
Fitxategi-sistema honen egitura fisikoa bloke multzoez osatuta dago. Bloke multzo bakoitzean, kontrol-informazioarekin batera (superblokea eta fitxategi-sistemaren deskribatzaileak) fitxategi-sistema beraren zati bat aurkitzen da (bloke bit-mapa, inodo bit-mapa, inodo taularen zati bat eta datu-blokeak).
Datu-blokeen (bloke-logikoen) tamaina fitxategi-sistema batetik bestera alda badaiteke ere, ext3 fitxategi-sistema baten bloke-tamaina hau sortzean zehazten da; konfiguragarria da beraz. Fitxategi bakoitzaren tamaina bloke kopuruan neurtzen du sistema eragileak eta normalean blokeak 1024, 2048 edo 4096 bytekoak dira (Alpha arkitekturako sistemetan 80192 byteko blokeak defini daitezke).
Blokearen tamaina handia bada, S/I eragiketak bizkortuko dira eskaera gutxiago egongo direlako eta ondorioz diskoaren buruak saiakera gutxiago egingo ditu. Aitzitik, fragmentazioa handiagoa da. Batez beste fitxategi baten azken blokea erdiraino egongo da beteta, hortaz bloke kopurua handitu ahala, leku gehiago egongo da alferrik galduta fitxategi bakoitzaren azken blokean. Adibidez, 1024 byteko blokeak baditugu eta 1025 byteko fitxategi bat, honek bi blokeren tamaina beteko du.

## Errendimendua

Ext3 fitxategi-sistemaren aurre-esleipen tekniken bitartez onura ezberdinak lortzen dira. Azken finean buffer cacheaz baliatzen da irakurketak burutzeko: bloke bat irakurri behar denean, kernel-kodeak S/I ondorengo zenbait bloketan ere egin dadin eskatzen du. Aurreirakurketa hauek normalean fitxategien irakurketa sekuentzialean burutzen dira eta katalogoen irakurketara hedatzen dira.
Ext3k baita ere esleipen prozesua optimizatzen du. Bloke multzoak, hauekin zerikusia duten inode eta datuekin biltzen dira. Kernel-kodeak beti fitxategi baten inodearen multzo berean dauden datu-blokeak esleitzen saiatuko da, diskoaren buruaren mugimendu kopurua gutxituz.
Fitxategi batean datuak idaztean, ext3k ondorengo 8 blokeak gordetzen ditu fitxategi horrentzat, fitxategia ahalik eta batuen mantentzeko ahaleginean. GNU/Linux sistema erabiltzaile-anitza den aldetik, erabiltzaile ugari egon daitezke makina berean lanean aldi berean eta, ondorioz, fitxategi-sistemaren portaera honekin fragmentazioa saihesten da hein batean.

## Segurtasuna

Erregistroaren erabilerak fitxategi-sistemaren integritatea bermatzen du errore tipikoen aurrean eta segurtasunean irabazten da. Erregistroa ez ezik baina, badira ext3 fitxategi-sisteman datuen segurtasuna mantentzen laguntzen duten ezaugarriak.
Esate baterako, ext3k 0. bloke multzoaren superblokea erabiltzen du bakarrik eta gainontzeko bloke multzoetan honen kopiak gordetzen dira. Arrazoi ezberdinak tarteko fitxategi-sistemaren superblokea kaltetu bada, ezinezkoa izango da fitxategi-sistema muntatzea. Arazoa konpontzeko, beste bloke-multzo bateko superblokea erabil daiteke. Superblokea gordetzen leku asko alferrik ez galtzeko, 0 eta 1 eta 3, 5 eta 7ren berredurak diren bloke multzoetan bakarrik egiten dira kopiak.
Berdin gertatzen da FS deskribatzailearekin: hau hondatuz gero gainontzeko bloke multzoetako kopiak erabil daitezke.
Superblokean, gainera, muntatze kontagailu bat mantentzen da balio maximo batekin. Honela, kontagailua balio maximora heltzen denean, fitxategi-sistemaren konsistentzia derrigorrez aztertu behar da. Sistemaren kudeatzaileak parametro hauek beharren arabera alda ditzake.
ext3 fitxategi-sistemak fitxategien gaineko ezabatze segurua dauka. Horretarako fitxategi edo katalogoen gainean dagokion marka ezarri behar da:
Honekin, markatutako fitxategi edo katalogoak ezabatzean, fitxategiak zeuden lekuan ausazko datuak idatziko dira. Era honetan, intentzio gaiztoko erabiltzaileren batek disko editore bat erabiliz aurrez zeuden datuak atzitzea ekiditen da.

## Erreferentziak

* ↑ (Ingelesez) Stephen C. Tweedie. (1998). «Journaling the Linux ext2fs Filesystem» (PDF) Proceedings of the 4th Annual LinuxExpo, Durham, NC (Noiz kontsultatua: 2007-06-23).
* ↑ (Ingelesez) Stephen C. Tweedie. (February 17, 1999). «Re: fsync on large files» Linux kernel mailing list. .
* ↑ (Ingelesez) Rob Radez. (November 23, 2001). «2.4.15-final» Linux kernel mailing list. .
* ↑ (Ingelesez) «ext4: Rename ext4dev to ext4» Linus-en kernel-zuhaitza.

## Kanpo estekak

* (Ingelesez) Common threads: Advanced filesystem implementor's guide, Part 7
* Datuak: Q283390