Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
— | pitel:isz:principy_a_struktury_spravy_souboru_a_spravy_pameti [30. 12. 2022, 13.43:01] (aktuální) – vytvořeno - upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== 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 (''/'' | ||
+ | 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í, | ||
+ | * Socket -- slouží pro síťovou komunikaci((Ale protože je Unix síťový OS, není neobvyklé že socket komunikuje pouze v rámci localhosta.)) | ||
+ | * Pojmenovaná roura -- obdoba " | ||
+ | * Symlink -- zástupce na jiný soubor. Ještě existuje tzv. // | ||
+ | ==== Organizace dat na disku ==== | ||
+ | Každý filesystem to dělá trochu jinak. | ||
+ | |||
+ | === FAT === | ||
+ | [[wp> | ||
+ | |||
+ | 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 === | ||
+ | [[wp> | ||
+ | |||
+ | 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 '' | ||
+ | < | ||
+ | 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ů '' | ||
+ | |||
+ | < | ||
+ | |||
+ | Na výše uvedeném příkladu uživatel '' | ||
+ | |||
+ | Práva a vlastníky lze měnit příkazy [[man> | ||
+ | |||
+ | ===== Paměť ===== | ||
+ | FIXME 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í, | ||
+ | * vědět: | ||
+ | * pamět kernelu se nestránkuje | ||
+ | * unixové speciální soubory |