ext2 (anglicky second extended filesystem) 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 editovat

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ří:

Teoretické limity ext2 v Linuxu[1]
Velikost bloku: 1 KiB 2 KiB 4 KiB 8 KiB
Max. velikost souboru: 16 GiB 256 GiB 2 TiB 64 TiB
Max. velikost oddílu: 2 TiB 8 TiB 16 TiB 32 TiB

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 editovat

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 editovat

 
Struktura i-nodu v souborovém systému 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ů editovat

Každá skupina bloků obsahuje:

  • superblok
  • deskriptor skupiny
  • bitmapu bloku
  • bitmapu inodů
  • tabulku inodů
  • datové bloky

Superblok editovat

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 editovat

Inode obsahuje metadata o souboru.

Související informace naleznete také v článku Inode.

Adresáře editovat

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

Reference editovat

  1. File system guide [online]. Linux Reviews [cit. 2009-01-26]. Dostupné v archivu pořízeném dne 2011-09-17. 

Související články editovat