Principy a struktury správy souborů a správy paměti
Soubory
Soubor – základní organizační jednotka pro uchování dat na discích či jiných médiích
Souborový systém – Souborový systém je souhrn pravidel definujících chování a vlastnosti jednotlivých souborů, možnosti jejich další logické organizace (do adresářů) a následně konkrétní způsob uložení požadovaných dat spolu s dalšími potřebnými informacemi na fyzickém médiu. Príklady: FAT32, NTFS, ext4, …
Alokační blok – Alokační blok je nejmenší jednotka, s kterou souborový systém schopen pracovat. Velikost bloku bývá zespodu limitována použitým zařízením.
Adresář – základní organizační jednotka pro hierarchickou organizaci souborů. Na jednotlivé soubory se odkazujeme pomocí jejich názvu a názvu jim nadřazených adresářů. K oddělení jednotlivých názvů používá k tomu vymezený znak, nejčastěji lomítko (/) nebo zpětné lomítko (\).
Vlastnosti souboru mohou být:
Jméno (dříve 8 + 3 znaky, dnes už je to vesměs jedno)
Velikost (je vždy menší než skutečná velikost na médiu, protože nezahrnuje metadata a další položky)
Časové informace (datum vytvoření a poslední mofifikace souboru)
Identifikace vlastníka (a skupiny)
Oprávnění přístupu
Umístění (ve kterém je adresáři)
Metadata mohou být kromě výše uvedených informací (a nemusí to být aniu všechny, třeba FAT vlastníky a oprávnění vůbec nezná) ještě například žurnálovací logy a další ptákoviny co si filesystem vymyslí.
Unix navíc rozlišuje několik speciálních typů souborů:
Blokový soubor – data v něm jsou organizována po blocích a většinou jsou vybavena vyrovnávací pamětí. Data jsou nejčastěji čistě binární. Typicky jsou to pevné disky.
Znakový soubor – řeší čistě znaková zařízení, typicky nějaké terminály a sériové porty.
Socket – slouží pro síťovou komunikaci
1)
Pojmenovaná roura – obdoba „pajpy“ | ale jako soubor do/z kterého mohou číst různé procesy.
Symlink – zástupce na jiný soubor. Ještě existuje tzv. hardlink, a to je pevný odkaz na soubor na stejné partišně.
Organizace dat na disku
Každý filesystem to dělá trochu jinak.
FAT
File Allocation Table
Fat tabulka je na začátku oddílu spolu s adresářem. Adresář má položky s metadaty o souborech a ukazatel na index ve FAT tabulce. Na té pozici je označený první blok souboru na oddílu a odkaz na další blok (pokud má soubor více bloků).
i-nodes
inode pointer structure
I-uzel obsahuje metadata (název souboru atd.), pár odkazů na alokační bloky a pár odkazů na struktury podobné i-uzlu, které ale neobsahují metadata. Takže se vytvoří stromová struktura (pro velké soubory). Hodně malé soubory mají přímo v i-nodu data, nikoli odkazy na bloky.
Oprávnění
Pokud si v Unixu zobrazíme výpis adresáře pomocí příkazu ls -l, dostaneme výpis i s detaily:
-rw-r--r-- 1 xkalab00 vti 9100 Jun 5 17:57 tcp_ip_komunikace.txt
Pokud si tyto detaily projdeme odzadu, obsahují:
Jméno souboru
Čas a datum poslední modifikace souboru
Velikost v bytech
Skupinu
Vlastníka
Počet odkazů na tento soubor (viz hardlinky)
Oprávnění
To oprávnění jsou tři trojice posloupnosti znaků rwx. (Ta pomlčka úplně na začátku pak představuje různé speciální typy souborů, jako jsou ty blokové, sockety a adresáře.) Trojice rwx pak symbolizuje práva pro čtení (Read), zápis (Write) a spouštění (eXecute). Jednotlivé trojice pak představují práva pro vlasníka, skupinu a všechny ostatní. U adresářů znamená právo pro spouštění otevření adresáře.
Na výše uvedeném příkladu uživatel xkalab00 může do souboru číst i psát, ale nemůže je spouštět2). Uživatelé ze skupiny vti mohou soubor pouze číst, a stejně tak všichni ostatní.
Práva a vlastníky lze měnit příkazy chmod a chown.
Paměť
az potom, behem session se to vazne nestihalo
Shrnutí
soubor, souborový systém, adresář
vlastnosti souboru (metadata)
oprávnění
organizace dat na disku: alokační blok, FAT, i-node
pamět: fyzická a logická
segmentovací přístup, externí fragmentace
stránkování, MMU, page fault (výpadek), tabulky stránek (jedno a víceúrovňové)
vědět:
pamět kernelu se nestránkuje
unixové speciální soubory