Systémy souborů
Téměř všechny aplikace potřebují trvale uchovávat data
Hlavní požadavky:
- Možnost uložit velké množství dat
- informace musí zůstat zachována i po ukončení procesu
- data musejí být přístupná více procesům
při přístupu k zařízení mají všechny procesy společné problémy
- alokace prostoru na disku
- pojmenování dat
- ochrana dat před neoprávněným přístupem
- zotavení po havárii
souborový systém:
- konvence pro ukládání a přístup k souborům
- část OS, která poskytuje mechanismus pro ukládání a přístup k datům
uživatelské rozhraní:
- konvence pro pojmenování souborů
- typy souborů
- způsob přístupu
- atributy a přístupová práva
- služby OS pro práci se soubory
Windows: NTFS, FAT12, FAT16, FAT32, ISO 9660 (CD-ROM)
Linux: ext2, ext3, ReiserFS, JFS, XFS, FAT12 až 32, ISO 9660, Minix, VxFS, OS/2 HPFS, SysV fs, UFS, NTFS read-only
- soubor – pojmenovaná množina záznamů, které lze zpracovávat jako celek
- záznam – strukturovaný datový objekt tvořený konečným počtem pojmenovaných položek
atributy - informace sdružené se souborem, liší se podle jednotlivých OS / FS
- příznaky (hidden, archive, temporary, read-only...)
- velikost, datum vytvoření, poslední modifikace...
Veškeré I/O jsou dnes (díky UNIXu) prováděny jako práce se soubory - interní struktura souboru OS nezajímá, adresář je také soubor
Základní operace pro práci se soubory
- otevření
- vytvoření
- čtení
- zápis
- nastavení pozice v souboru
- zavření souboru
[editovat] Virtuální FS
Kód společný pro všechny typy FS, volán aplikacemi, udržuje informaci o otevřeném souboru, ověřuje přístupová práva.
Typy FS
- kontunuální alokace (jen u read-only médií - např CD)
- seznam diskových bloků (blok obsahuje data a odkaz na další blok)
- FAT
[editovat] FAT
Implementace:
- Každému bloku odpovídá jedna položka v tabulce FAT
- Položka FAT obsahuje číslo dalšího bloku souboru
- Řetězec odkazů je ukončen speciální značkou, která není platným číslem bloku (-1)
Nevýhodou FAT je velikost tabulky (80 GB disk, bloky 4 kB => 20 mil položek, každá položka alespoň 3 byty => 60 MB FAT)
- FAT 12 - 12 bitů, 212 = 4096 bloků, diskety
- FAT 16 - 16 bitů, 216 = 65536 bloků
- FAT 32 - 228 bloků, blok 4-32KB, cca 8TB
[editovat] I-uzly
S každým souborem sdružená datová struktura i-uzel. I-uzel obsahuje atributy souboru, diskové adresy prvních N bloků a jeden nebo více odkazů na diskové bloky obsahující další diskové adresy. Tradiční FS pro Linux a UNIX
Výhoda: Po otevření souboru můžeme zavést i-uzel a případný blok obsahující další adresy do paměti => urychlí přístup k souboru
Implementace adresářů: tabulka obsahující jméno souboru a číslo jeho i-uzlu.
Info o volných blocích = seznam, jeho začátek je v superbloku na začátku partition
Adresáře - většinou se jedná o speciální typ souboru
Info o volných blocích v paměti - bitová mapa