Ext2

ext2 () je v informatice souborový systém, který byl původně implementován pro jádro Linuxu, avšak je možné ho nalézt i v dalších operačních systémech. Navrhl ho Rémy Card jako nástupce souborového systému ext a je k dispozici jako open source software. Ext2 nepoužívá žurnálování, které podporuje až jeho přímý kompatibilní nástupce ext3.

Charakteristika 
Souborový systém ext2 je přímým nástupcem souborového systému ext. Jejich struktura na disku přímo vychází ze systému souborů UFS, který používaly první unixové systémy. Mezi jeho hlavní charakteristiky patří:

 lze vytvářet adresáře
 lze vytvářet různé typy souborů: obyčejný soubor, speciální soubor (reprezentuje zařízení, je typu blokový a znakový), pojmenované roury, sockety
 umožňuje používat pevné odkazy, symbolické odkazy
 pro každý soubor a adresář se ukládají práva UGO – vlastníka (user), skupiny (group), ostatních (other) a rozšířené atributy

Název souboru na ext2 může obsahovat libovolné znaky kromě znaku s kódem 0 a lomítka. Systém ext2 neobsahuje speciální podporu pro národní znakové sady, ale není problém na něj ukládat soubory v ISO-8859-2 nebo UTF-8 (použití UTF-16 není možné). Maximální délka jména souboru je 255 bytů (dle specifikace rozšiřitelná až na 1012 bytů). Maximální délka souboru jako takového je 264 bytů (což je teoretický horní strop daný přímo souborovým systémem). V závislosti na implementaci může být nižší, například na 32bitových systémech může být velikost souboru omezena na 231 bytů (do jádra verze 2.4.0). V novějších jádrech bylo rozšířeno API rozhraní, a tak je současný limit na platformě x86 2 TiB (241), avšak závisí na velikosti bloku (viz tabulka). Některé programy však funkce rozšířeného rozhraní nepoužívají, a proto nemusí být schopny pracovat s většími soubory.

Nástupcem souborového systému ext2 je systém ext3, který je plně zpětně kompatibilní, ale navíc podporuje například žurnálování (informace o dokončených operacích).

Historie 
Raný vývoj Linuxového jádra probíhal též v prostředí operačního systému Minix. Proto bylo přirozené, že byl do Linuxového jádra jako primární souborový systém implementován MINIX file system. Minixový systém souborů byl prakticky bezchybný, ale protože používal 16bitové adresy, byl omezen na maximálně 64 MiB dat a neumožňoval názvy souborů dalších 14 znaků. Kvůli těmto omezením začala v Linuxu práce na implementaci nových souborových systémů.

Byla vyvinuta mezivrstva VFS, která umožňovala v jádře Linuxu sjednotit přístup ke všem souborovým systémům a zjednodušit tak jejich začleňování. Po jeho integraci do jádra byl v dubnu 1992 začleněn do verze 0.96c souborový systém ext (extended file system). Řešil dva hlavní problémy: maximální velikost diskového oddílu až 2 GiB a délka názvu souboru byla až 255 znaků, ale stále existovaly problémy: neexistovala podpora separovaného přístupu a možnost změny I-node a v něm uložených záznamů o čase.

Jako řešení těchto problémů byly v lednu 1993 vyvinuty dva nové souborové systémy: xiafs a ext2 (second extended file system). Souborový systém ext2 byl založen na souborovém systému ext, avšak prošel mnohými reorganizacemi, zlepšeními a byl navržen s přihlédnutím na evoluci a zároveň ponechával prostor pro další rozšiřování – POSIXové ACL a rozšířené atributy (Extended file attributes), které používá například SELinux.

Struktura ext2 

Na začátku systému souborů je boot sektor, který slouží pro uložení zavaděče operačního systému. Dále je souborový systém rozdělen na skupiny bloků (group blocks), které mají vnitřně stejnou strukturu a skupin je v souborovém systému několik.

Skupiny bloků 
Každá skupina bloků obsahuje:
 superblok
 deskriptor skupiny
 bitmapu bloku
 bitmapu inodů
 tabulku inodů
 datové bloky

Superblok 
Superblok obsahuje:
 počet inode
 počet bloků
 počet rezervovaných bloků
 číslo prvního bloku
 velikost fragmentu
 počet bloků ve skupině
 počet fragmentů ve skupině
 počet inodů v skupině
 čas posledního zápisu
 počet připojení souborového systému od jeho poslední kontroly
 maximální počet připojení souborového systému před vynucenou kontrolou
 magické číslo jako označení typu
 stav souborového systému: v pořádku (čistý) nebo ne
 hlášení detekce chyby
 číslo revize (minor)
 čas poslední kontroly souborového systému
 maximální doba mezi kontrolami
 standardní ID uživatele a skupiny pro rezervované bloky

Inode 
Inode obsahuje metadata o souboru.

Adresáře 
Adresář je uložen v datovém bloku a obsahuje seznam čísel inode a názvy položek v adresáři.

Reference

Související články 
 Extended file system (ext) – předchůdce ext2
 ext3, ext4 – nástupci ext2
 Systém souborů v Unixu
 Inode
 UFS – tradiční unixový souborový systém

Souborové systémy