Souborový systém, hierarchie, cesty, kódování, streamy, čtení a zápis souborů
Formát: 30 min praktická úloha, 15 min obhajoba + teorie. Teorie pokrývá souborový systém, cesty, streamy a I/O v C#. Praktika: procházení adresáře, čtení textových souborů, zápis výstupu.
Souborový systém je způsob, jakým operační systém organizuje data na disku. Bez něj by byl disk jen hromada nul a jedniček bez začátku a konce.
Aplikace ──čte/zapisuje──▶ OS (souborový systém)
│
│ překládá na bloky
▼
Driver disku
│
│ fyzicky
▼
Disk (sektory)
OS zajišťuje:
FYZICKÁ: LOGICKÁ:
Disk = sektory (~512 B) OS sdružuje do CLUSTERŮ (~4 KB)
┌─┬─┬─┬─┬─┬─┬─┬─┐ ┌─────┬─────┬─────┬─────┐
│S│S│S│S│S│S│S│S│ → │ C │ C │ C │ C │
└─┴─┴─┴─┴─┴─┴─┴─┘ └─────┴─────┴─────┴─────┘
Příliš pomalé pro OS Praktické jednotky alokace
Vnitřní fragmentace: Soubor o velikosti 1 B zabere celý cluster (4 KB), zbytek je "mrtvý prostor".
| Systém | Princip | Použití |
|---|---|---|
| FAT (FAT32, exFAT) | Velká tabulka na začátku disku, "kus tady, kus tam". Když se rozbije, data jsou pryč. | Flash disky, SD karty |
| NTFS | Žurnálovaný (deníček před zápisem), oprávnění, komprese, šifrování | Windows |
| ext4 | Inody, každý soubor má "občanský průkaz" (metadata + adresy bloků). Jméno a data oddělené. | Linux |
| APFS | Snapshoty, copy-on-write | macOS |
Před zápisem si systém poznamená "chci provést X". Když vypadne proud, po startu se podívá do deníčku a dokončí nebo vrátí změny. Žádné poškozené soubory.