Obsah

Principy a struktury správy souborů a správy paměti

Soubory

Vlastnosti souboru mohou být:

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ů:

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í:

  1. Jméno souboru
  2. Čas a datum poslední modifikace souboru
  3. Velikost v bytech
  4. Skupinu
  5. Vlastníka
  6. Počet odkazů na tento soubor (viz hardlinky)
  7. 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.

Existují ještě další oprávnění, jako sticky bit, setuid, setgid, a další. Vizte chmod a Filesystem permissions.

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ěť

FIXME az potom, behem session se to vazne nestihalo

Shrnutí

1)
Ale protože je Unix síťový OS, není neobvyklé že socket komunikuje pouze v rámci localhosta.
2)
Proč taky spouštět textový soubor?