Operační systémy pro mobilní zařízení (OSMZ)

Týden VI. (15.3.-19.3.2021)

V šestém týdnu nás bude zajímat způsob, jakým se ukládají data v rámci souborových systémů. Hlavním studijním textem bude opět kapitola v knize A. S. Tanenbauma Moderní operační systémy. Ve stručnější formě naleznete souhrn problematiky a přístupů pro implementaci souborových systémů.

V rámci mobilních zařízení nás bude především zajímat rodina souborových systémů EXT2/3/4, které jsou stále nejpoužívanějšími souborovými systému Linuxu/Androidu, dále pak souborový systém FAT, který je díky své jednoduchosti a neexistenci patentových sporů formátem užívaným u nejjednodušších embedded zařízení, digitálních fotoaparátů apod. a v neposlední řadě pak souborový systém JFFS2 užívaný především na síťových zařízeních s malou kapacitou flash pamětí. Shrnutí souborových systémů v češtině naleznete v bakalářské práci Souborové systémy na různých typech paměťových médií.

FAT16/32
Pro základní popis implementace FAT nahlédneme do dokumentace Microsoftu. Implementace přístupu k FAT souborovému systému bude i úkolem posledních praktických cvičení. Pro podrobnější popis včetně implementačních detailů nabízí MSDN detailnější specifikaci. Jedním z problémů, se kterým se FAT oddíly potýkají, je fragmentace dat. Ta vzniká v momentě, kdy je svazek zaplněn a nelze nalézt souvislý blok clusterů pro alokaci nového souboru a musí se využít volné clustery rozmístěné na různých místech disku. Fragmentace dat pak způsobuje u klasických rotačních disků pomalejší přístup k datům, protože se hlavička musí častěji nastavovat na pozice různě rozptýlených datových clusterů souborů. Proto také produkty Microsoftu od nepaměti disponují nástrojem defrag, který slouží pro defragmentaci takovéhoto souborového systému. V roce 2006 se souborový systém FAT dočkal své revize v podobě exFAT. Využití exFAT nachází tam, kde staré souborové systémy (nejčastěji FAT) přestávají stačit nárokům na ukládání souborů (zejména co do kapacity, ale i počtu souborů, velikosti clusterů), přináší i několik nových funkcí (přidělování nového místa, transakce).

EXT2/3/4
ext4 (fourth extended filesystem) je žurnálovací souborový systém a je zpětně kompatibilním nástupcem ext3 (přejímá všechny jeho výhody). Ext4 přináší mnoho novinek typických pro moderní souborové systémy, jako je odstranění limitů ext3 (velikost souborového systému, souborů, počtu souborů v adresáři), podporu extentů, prealokaci místa na disku, odloženou alokaci, kontrolní součet žurnálu, online defragmentaci, rychlejší kontrolu, multiblokový alokátor a zvýšenou přesnost uložených časových údajů a mnohé další. Popis tohoto souborového systému můžeme nalézt přímo v dokumentaci utilit sloužících pro manipulaci s těmito svazky. Český text podrobně popisující implementaci EXT2/3/4 naleznete v diplomové práci.

JFFS/JFFS2
JFFS a JFFS2 jsou jednoduché souborové systémy pro NAND flash paměti. Data a metadata jsou zapisována v souvislém proudu nazývaném log. Novější záznamy tak nahrazují předchozí, aniž by musely původní být přepsány. Log je tedy sekvenční struktura, do které se zapisují data. Tato struktura zvětšuje výkonnost zápisu, eliminuje skoro všechny vyhledávací doby a sekvenčnost také napomáhá rychlejší opravě dat po chybách. Zápis probíhá zapsáním uzlu na konec logu (log tail). Nejstarší uzly s daty jsou na začátku logu (log head). Data se odstraňují pomocí garbage collectoru, který maže data ze začátku logu. Díky této technice se realizuje tzv. „wear-leveling“, který prodlužuje životnost mazatelným médiím.

PREZENTACE

LITERATURA

Andrew S. Tanenbaum - Moderní operační systémy. 4. vydání:

  • Kapitola 4 - Souborové systémy (str. 263-331)

BONUS MATERIÁLY

Video ukazující jak vypadá rozdělení souboru na datové clustery a zápis celého řetězce do FAT tabulky.
Prakticky si můžete vyzkoušet implementaci vlastní defragmentačního algoritmu .
Pro doplnění informací o souborových systémech doporučuji také již starší, ale z velké části stále validní seriál z webu abclinuxu.cz

OTÁZKY

Po přečtení výše uvedených textů byste měli být schopni odpovědět na další otázky z okruhů ke zkoušce, konkrétně:

  • Jakým způsobem se ukládají data v souborovém systému EXT2/3/4, jaké informace obsahuje inode.
  • Jakým způsobem se ukládají data v souborovém systému FAT, čím je tvořena tabulka FAT
  • Jakým způsobem se ukládají data v souborovém systému JFFS, kdy dochází k přepisu bloku.
  • Jakým způsobem jsou implementovány soubory a adresáře (na příkladu FAT, EXT2 …)
  • Co je symbolický odkaz (symbolic link) a pevný odkaz (hard link), jakým způsobem jsou implementovány.
  • Popište mechanismy kontroly souborového systému a nejčastější chyby.