Uživatelské nástroje

Nástroje pro tento web


pitel:isz:principy_a_struktury_spravy_souboru_a_spravy_pameti

Rozdíly

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 (''/'') 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((Ale protože je Unix síťový OS, není neobvyklé že socket komunikuje pouze v rámci localhosta.))
 +  * 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 ===
 +[[wp>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 ===
 +[[wp>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 ''[[man>ls|ls -l]]'', dostaneme výpis i s detaily:
 +<code>-rw-r--r-- 1 xkalab00 vti  9100 Jun  5 17:57 tcp_ip_komunikace.txt</code>
 +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í (**R**ead), zápis (**W**rite) a spouštění (e**X**ecute). 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.
 +
 +<note>Existují ještě další oprávnění, jako sticky bit, setuid, setgid, a další. Vizte [[wp>chmod]] a [[wp>Filesystem permissions]].</note>
 +
 +Na výše uvedeném příkladu uživatel ''xkalab00'' může do souboru číst i psát, ale nemůže je spouštět((Proč taky spouštět textový soubor?)). 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 [[man>chmod]] a [[man>chown]].
 +
 +===== 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í, 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