Dizajn

Fajl sistem - FreeBSD

Fajlovi mogu biti obicni fajlovi, direktorijumi i specijalni fajlovi.

Obični fajl je niz bajtova. Velicina fajla je jednaka ukupnom broju znakova koje fajl sadrzi. Fajlu se može pristupiti (čitati ili pisati) počev od bilo kog bajta. Podaci unutar fajla nemaju nikakvu strukturu osim one koju sam korisnik definiše. U samom fajlu se ne nalaze nikakve informacije o tom fajlu, već su one u fajl sistemu.

Fajl sistem čuva sledeće informacije o fajlovima: ime fajla, jedinstven broj fajla nazvan inode, velicinu u bajtovima, vreme kreiranja, vreme poslednje izmene, vreme poslednjeg pristupa, pristupne dozvole, vlasnika fajla i grupu kojoj pripada vlasnik fajla.

Direktorijumi daju hijerarhijsku organizaciju celog fajl sistema. Direktorijum su obični fajlovi, ali poseduju strukturu. Direktorijum je lista imena fajlova i drugih direktorijuma koji se nalaze u njemu. Kernel ne dozvojava procesima da prepravljaju direktorijume.

Specijalni fajlovi se nalaze u /dev direktorijumu i predstavljaju hardverske uredjaje.

Fajl sistem UNIX operativnog sistema je hijerarhijski struktuiran u vidu stabla. Na vrhu stabla je direktorijum koji se naziva korenom (root) i označava se kosom crtom (/).

Procesi identifikuju fajlove po njihovoj putanji i imenu. Putanja (put) je niz imena direktorijuma na čijem se kraju nalazi ime ciljnog direktorijuma ili fajla. Sva imena u putanji su razdvojena kosom crtom. Ako putanja počinje kosom crtom znači da je formirana od korena, to jest od root direktorijuma, i tada se naziva potpunim ili apsolutnim putanjom. Putanja se takodje može kreirati relativno u odnosu na radni (working)-tekući direktorijum i tada se naziva relativna putanja i ne počinje kosom crtom. Svi direktorijumi i fajlovi, osim root direktorijuma, imaju neposrednog prethodnika (parent directorijum) koji je označen sa "..", dok je radni direktorijum označen sa ".".

Iako postoji više fajl sistema, svi su smešteni pod root fajl sistemom. Root fajl sistem je uvek prisutan, dok se fajl sistemi sa drugih uredjaja (diskova, cdrom-ova) montiraju pod neki direktorijum na root fajl sistemu. Montiranje se obavlja eksplicitno, bilo pri startovanju sistema, bilo na korisnikov zahtev. FreeBSD pruža korisnicima jednu olakšicu što se ovoga tiče - fajl sistem se može montirati dinamički svaki put kada mu korisnik pristupi.

Sistemski poziv link stvara još jedno ime kojim se jednom fajlu može pristupiti. Fajl se može ukloniti sistemskim pozivom unlink. Fajl će biti izbrisan kada se ukloni i poslednje ime kojim se on može pristupiti i kada se zatvori poslednji deskriptor koji je neki proces koristio za pristupanje fajlu.

Tipičan fajl sistem FreeBSD-a

bin/
programi
boot/
konfiguracioni fajlovi boot-manager-a
cdrom/
direktorijum pod kojim se montira cdrom
compat/
biblioteke koje omogućuju izvršavanje linux programa
dev/
specijalni fajlovi koji predstavljaju uredjaje
etc/
konfiguracioni fajlovi sistema
fat/
direktorijum pod kojim se montira ms-dos particija
home/
direktorijumi korisnika
mnt/
za montiranje ostalih fajl sistema (floppy)
modules/
moduli koji se mogu dinamički učitati u kernel
proc/
virtualni fajl sistem koji prikazuje stanje procesa
root/
superuser-ov home direktorijum
sbin/
sistemski programi
stand/
instalaciona alatka (sysinstal)
sys/
izvorni kod kernela i programa
tmp/
privremeni fajlovi
usr/
korisnički programi, kolekcija portova
var/
razne informacije (o instaliranim portovima, logovi...)
kernel
kernel binarni fajl

Direktorijum /usr sadrži sve korisničke programe, kolekciju portova, izvorni kod sistema i programa i drugo: X11R6/, home/, libexec/, sbin/, bin/, include/, local/, share/, compat/, lib/, obj/, src/, games/, libdata/, ports/, tmp/.

2000 - 2018, Autor - Marko Uskoković. Izrada i web prostor - Goran Aleksić.