System plikow to cos, co daje uzytkownikowi mozliwosc dostepu do danych
przechowywanych w pamieci pomocniczej(np. dysk). Jest on takze odpowiedzialny
za zarzadzanie plikami i przydzielanie im pamieci, za administrowanie pamiecia
wolna oraz sterownie dostepem do plikow.
Z punktu widzenia uzytkownika system plikow mozemy traktowac jako drzewo
z korzeniem (katalog /), w ktorym kazdy wezel nie bedacy lisciem jest katalogiem,
a lisc moze byc katalogiem, plikiem zwyklym lub plikiem specjalnym. Nazwe
pliku budujemy poprzez uzycie nazw katalogow i symbolu / (np. /home/user).
Z kazdym plikiem (a wiec i katalogiem) wiazane sa 3 rodzaje praw dostepu:
okreslane dla wlasciciela pliku, jego grupy oraz dla innych uzytkownikow.
Procesy komunikuja sie z systemem plikow poprzez funkcje
systemowe natomiast system plikow udostepnia dane korzystajac z mechanizmu
buforowania, ktory reguluje przeplyw danych pomiedzy jadrem a urzadzeniem
pamieci pomocniczej. Te urzadzenia z kolei obslugiwane sa przez podprogramy
obslugi urzadzen.
Cechy charakterystyczne systemu plikow LINUXa:
Kazdy system plikow jest traktowany jako urzadzenie logiczne i moze
byc zwiazany z jednym lub wiecej urzadzeniami fizycznymi. Urzadzenie logiczne
identyfikowane jest za pomoca numeru urzadzenia a przeliczania adresow
dokonuje podprogram obslugi urzadzenia.
(disk driver-w przypadku dysku).
System plikow zbudowany jest z ciagu blokow logicznych, zawierajacych 512
(lub wielokrotnosc) bajtow. Rozmiar bloku jest uzalezniony od implementacji
systemu (w LINUX-ie 2.0.0 jest to ). Rozmiar taki jest staly wewnatrz danego
systemu plikow.
Schemat budowy systemu plikow:
Bloki danych zawieraja dane z plikow oraz dane administracyjne. Jeden
blok moze nalezec do jednego i tylko jednego pliku, stad rozmiar bloku
jest zwiazany z oszczednoscia pamieci i szybkoscia odczytu.
Wewnetrzna reprezentacja plikow jest oparta na strukturze nazwanej i-wezlem
(i-node), zawierajacej m.in. opis polozenia pliku, jego wlasciciela,
prawa i czasy dostepu... Kazdy plik ma dokladnie jeden i-wezel, choc moze
miec wiele nazw. Lista i-wezlow jest przechowywana przez system plikow,
choc na czas pracy jest ladowana do pamieci w postaci tablicy
i-wezlow w pamieci glownej. Jadro utrzymuje w pamieci jeszcze dwie
struktury: tablice plikow i tablice deskryptorow plikow.
System plikow komunikuje sie z programami obslugi urzadzen za pomoca podrecznej
pamieci buforowej , ktora jest odpowiedzialna za przeplyw danych pomiedzy
pamiecia glowna a urzadzeniami zewnetrznymi.