Kalábovi

Kalábovic wikina

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.

Odkaz na výstup diff

pitel:isz:principy_a_struktury_spravy_souboru_a_spravy_pameti [03. 07. 2012, 13.53:46] (aktuální)
Řá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
/var/www/wiki/data/pages/pitel/isz/principy_a_struktury_spravy_souboru_a_spravy_pameti.txt · Poslední úprava: 03. 07. 2012, 13.53:46 (upraveno mimo DokuWiki)