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.


Část 1: Teorie

Co je souborový systém

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:


Architektura: jak to funguje uvnitř

Fyzická vs logická vrstva

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".

Jak OS ví, kde soubor leží

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

Žurnálování (deníček)

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.