Ext2

ext2 alebo second extended file system („druhý rozšírený súborový systém“) bol štandardným súborovým systémom používaným v operačnom systéme Linux po niekoľko rokov a zostáva naďalej široko používaný. Pôvodne ho navrhol Rémy Card na základe konceptu extended file system. Je pomerne rýchly, dostatočne na to, aby bol považovaný ako štandard pre porovnanie výsledkov benchmarkov. Jeho hlavnou nevýhodou je, že nie je žurnálovacím súborovým systémom. Jeho nasledovník ext3 pridáva žurnálovanie a je čiastočne spätne kompatibilný s ext2.

Kanonická implemetácia ext2 je ovládač ext2fs v jadre Linuxu. Iné implementácie (rôzneho stupňa kvality a úplnosti) existujú v HURD, niektorých jadrách BSD a ako ovládače od tretích strán pre Microsoft Windows. ext2 bol štandardným súborovým systémom v linuxových distribúciách Red Hat, Fedora a Debian až do jeho nahradenia ext3.

História 
Raný vývoj Linuxového jadra sa vykonával krížovým vývojom v operačnom systéme Minix. Prirodzene bolo zjavným rozhodnutím implementovať Minix file system ako primárny súborový systém Linuxu. Minix file system prakticky neobsahoval muchy, ale mal niektoré obmedzenia ako schopnosť pracovať iba so 64 megabajtami dát kvôli jeho 16-bitovému adresnému priestoru a neumožňoval názvy súborov dlhšie ako 14 znakov. Kvôli týmto obmedzeniam začala práca na implementácii nových súborových systémov pre operačný systém Linux.

Bol vyvinutý jednoduchý spôsob pridávania nových súborových systémov do jadra Linuxu, virtuálny súborový systém zvaný VFS. Po jeho integrácii do jadra bol v apríli 1992 uvoľnený extended file system (ext) ako prvý súborový systém navrhnutý pre Linux a jeho ovládač zahrnutý vo verzii Linuxu 0.96c. Súborový systém ext riešil dva hlavné problémy Minix file systému (maximálna veľkosť partície a obmedzenie dĺžky názvu súboru) umožňujúc 2 gigabajty dát a 255 znakov v názve súboru. 
Ale stále existovali problémy: neexistovala podpora separovaného prístupu, modifikácia inode a čaových známok zmeny dát.

Ako riešenie týchto problémov boli v januári 1993 vyvinuté dva nové súborové systémy: súborový systém Xia a second extended file system (ext2). Súborový systém ext2 bol založený na extended file systéme s mnohými reorganizáciami a zlepšeniami a bol navrhnutý s prihliadnutím na evolúciu, ponechávajúc priestor pre ďalšie rozširovanie.

Súborový systém ext2 má maximálnu veľkosť dát 4 terabajty, maximálnu dĺžku názvu súboru 255 znakov a variabilnú dĺžku bloku.

Štruktúra

Skupiny blokov 
Každá skupina blokov obsahuje:
superblok
deskriptory skupiny
bitmapu bloku
bitmapu inode
tabuľku inode
dátové bloky

Superblok 
Superblok obsahuje:
počet inode
počet blokov
počet rezervovaných blokov
číslo prvého bloku
veľkosť bloku
fragment size
počet blokov v skupine
počet fragmentácií v skupine
počet inode v skupine
čas posledného namontovania
čas posledného zápisu
počet namontovaní od poslednej kontroly
maximálny počet namontovaní do kontroly
magické číslo ako označenie typu
stav súborového systému: v poriadku (čisto odmontovaný) alebo chyba
správanie pri detekcii chyby
číslo revízie (minor)
čas poslednej kontroly súborového systému
maximálna doba medzi kontrolami
štandardný ID používateľa a skupiny pre rezervované bloky

Inode 
Inode obsahuje:
režim súboru: práva na čítanie, zápis, vykonanie
ID vlastníka
veľkosť súboru v bajtoch
čas posledného prístupu (atime)
Čas poslednej zmeny inode (ctime)
Čas poslednej zmeny súboru (mtime)
Čas zmazania (dtime)
ID skupiny
počet odkazov
počet blokov
flags
použité bloky
priame bloky
nepriame bloky
dvojnásobne nepriame bloky

Adresáre 
Blok obsahuje zoznam čísel inode a názvy položiek adresára.

Súbory 
Iba skupina blokov.
Čísla blokov sú uložené v inode súboru.
Žiadne magické číslo -- iba bloky dát.

Linky 
Hard linky a soft linky

Špeciálne súbory 
Vytvorené príkazom mknod:
 blokové a znakové špeciálne zariadenia
 FIFO

Pozri aj 
 Porovnanie súborových systémov

Externé odkazy 
 Second Extended Filesystem -- Návrh a implmentácia (en)
 Ext2fs homepage (en)
 ovládač súborového systému ext2 pre MS Windows NT/2000/XP (en)

Súborové systémy