Topics:
Problem: dostop do datotek iz več pomnilnih naprav - vsaka s svojo imeniško strukturo
Več ločenih imeniških struktur - Windows:
- črkovne oznake naprav - disketni enoti
A:inB:, diskovne enoteC:,D:, … dostop - oznaka naprave + pot dod datoteke
Ena enotna imeniška struktura - Linux, Unix, macOS:
- naprave kot pod-strukture pripnemo (mount) v ciljni imenik (točka pripenjanja) ukaza
mountinunmount
Navidezni datotečni sistem (VFS)
Nudi enoten vmesnik do različnih fizičnih datotečnih sistemov z abstrakcijo datoteke.
Abstrakcija je objektno orientirana:
Struktura superblock: predstavitev priklopljenega datotečnega sistema
- tip in lokacija (naprava) datotečnega sistema, ter nizkonivojske operacije nad njim
- kazalec inode na korenski imenik; velikost bloka, zastavice read-only, dirty, …
Struktura inode (index node): datoteka poljubnega tipa, predstavlja vse razen imena datoteke
- št. inode, št. trdih povezav, velikost datoteke ter kazalci na bloke z vsebino
- lastnik, skupina - dovoljenja, čas dostopa in spremembe
- operacije
create(),link(),mkdir(),rmdir(),read(),open(), …
Struktura dentry (directory entry): imeniški vnos v imeniku, preslikava ime inode
- ime datoteke, kazalec inode na datoteko ter kazalec na starševski imenik
Primer:

Datotečni deskriptorji
Struktura file: predstavlja odprto datoteko = datotečni deskriptor
- kazalec na ustrezen dentry; uid in gid procesa, ki je datoteko odprl; pozicija v datoteki
Vsak datotečni deskriptor ima št. deskriptorja, ki ji ustreza tak objekt: 0 stdin, 1 strdout, 2 stderr, …
Podvajanje št. deskriptorja - sistemska klica:
new = dup(orig)… vrne št. deskriptorjanew, ki predstavlja isti dekriptor (isti objekt file) kotorig, uporabi se prva prosta št. deskriptorja

dup2(orig, new)… preusmeritev deskriptorjaorigvnew
