“ Two days later, there was Pooh, sitting on his branch, dangling his legs, and there, beside him, were four pots of honey...” (A.A.\ Milne)
Acest capitol descrie partile importante ale standardului arborelui de directoare Linux , bazat pe standardul FSSTND. Subliniaza metoda obisnuita de impartire a arborelui de directoare in sisteme de fisiere separate, cu scopuri diferite si motiveaza acest mod de impartire. Moduri alternative sunt de asemenea descrise.
Acest capitol se bazeaza partial pe Linux Filesystem Standard (Standardul sistemului de fisiere Linux), FSSTND versiunea 1.2 (vezi bibliografia), care incearca sa traseze un standard pentru modul de organizare al arborelui directoarelor Linux. Un astfel de standard are avantajul ca va fi mai usor de scris si portat soft pe Linux, de administrat computerele cu Linux, din moment ce totul va fi in locul asteptat. Nu exista nici o autoritate care sa oblige pe cineva sa urmeze acest standard, dar are suportul majoritatii, daca nu al tuturor distributiilor. Nu e recomandata incalcarea acestui standard, daca nu exista motive serioase. FSSTDND incearca sa urmeze traditia UNIX, dar si orientarile actuale, facand ca Linux sa para familiar celor cu experienta pe alte sisteme UNIX, si viceversa.
Acest capitol nu e la fel de detaliat ca FSSTND. Un administrator de sistem ar trebui sa citeasca si FSSTND pentru a intelege totul.
Acest capitol nu explica toate fisierele in detaliu. Nici nu intentioneaza aceasta, ci doar sa ofere o vedere de ansamblu a sistemului din punctul de vedere a sistemului de fisiere. Informatie mai detaliata asupra fiecarui fisier este disponibila in alte secriuni ale acestui manual, sau in manpages.
Intregul arbore director este imaginat in ideea de a putea fi impartit in parti mai mici, fiecare pe partitia sau discul sau, pentru a se pune de acord cu dimensiunile discurilor si pentru a simplififca backup-ul si alte activitati de administrare. Partile importante sunt root (radacina), /usr, /var, si /home (vezi Figure 3-1). Fiecare parte are un anume scop. Arborele directoarelor a fost proiectat astfel incat functioneaza bine intr-o retea de masini Linux, care pot partaja anumite componente ale sistemului de fisiere prin intermediul unor dispozitive read-only (de ex., CD-ROM) sau pe retea prin NFS.
Rolul diferitelor portiuni ale arborelui de directoare sunt descrise mai jos:
Sistemul de fisiere root este specific fiecarei masini (se afla in general pe un disc local, desi ar putea fi si un ramdisk sau disc in retea) si contine fisierele care sunt necesare pentru bootarea sistemului, si aducerea lui la momentul cand pot fi montate si celelalte sisteme de fisiere. Continutul sistemului de fisiere root va fi suficient pentru starea single user. Va contine programe pentru repararea unui sistem defect, si pentru recuperarea fisierelor pierdute de pe backup-uri.
Sistemul de fisiere /usr ar trebui sa depinda de masina pe care e instalat, si nu ar trebui modificat in timpul utilizarii normale. Aceasta permite ca fisierele sa fie partajate prin retea, lucru care poate fi un avantaj, pentru ca se economiseste spatiu pe disc, (pot fi sute de MB in /usr), si administrarea poate fi mai usoara (doar principalul /usr trebuie modificat cand se actualizeaza o aplicatie, nu fiecare masina separat). Chiar daca acest sistem de fisiere este pe discul local, el poate fi montat read-only, pentru a micsora sansa coruperii sistemului la vreo cadere a sistemului.
Sistemul de fisiere /var contine fisierele care se modifica, precum directoarele spool (pentru posta, stiri, imprimanta), fisierele de log, paginile de manual deja formatate si fisiere temporare. In trecut, tot ce se afla in /var era undeva in /usr, dar din aceasta cauza /usr nu putea fi montat read-only.
Sistemul de fisiere /home contine directoarele de baza ale fiecarui utilizator, adica toate datele reale din sistem. Separarea directoarelor de baza catre propriul arbore de directoare sau catre propriul sistem de fisiere usureaza backup-ul; celelalte sisteme de fisiere nu trebuie salvate la fel de des (se schimba mai rar). Un /home mare ar trebui separat in cateva sisteme de fisiere, care necesita adaugarea unui nou nivel in cadrul denumirii directoarelor de sub /home, de exemplu /home/students si /home/staff.
Desi mai sus diferite parti au fost numite sisteme de fisiere, nu exista nici o cerinta obligatorie ca ele sa fie chiar pe sisteme de fisiere (in sensul de partitii) diferite. Ele pot fi pastrate pe o singura partitie, daca sistemul este unul mic monoutilizator, si acest utilizator vrea sa pastreze lucrurile simple. Arborele de directoare poate fi desigur impartit in sisteme de fisiere si in alte moduri, in functie de cat de mari sunt discurile si de cum e alocat spatiul pentru diferite scopuri. Cel mai important lucru este ca toate numele standard merg; chiar daca /var si /usr sunt pe aceeasi partitie, numele /usr/lib/libc.a si /var/log/messages trebuie sa mearga, de exemplu mutand /var in /usr/var, si facand ca /var sa fie un symlink (legatura simbolica=un fel de shortcut) catre /usr/var.
Structura sistemului de fisiere UNIX grupeaza fisierele in functie de scopul lor, de ex., toate comenzile sunt intr-un loc, toate fisierele cu data in altul, documentatia in alt loc, si tot asa. Un alt mod de grupare a fisierelor este in functie de progamul caruia apartin, de exemplu, toate fisierele Emacs intr-un director, toate cele TeX in altul. Problema acestei ultime metode este ca ingreuneaza partajarea fisierelor (directorul programului contine adeseori fisiere statice, fisiere care pot fi partajate, care se schimba, sau care nu pot fi partajate), si uneori chiar cautarea fisierelor (de ex., paginile de manual aflate in diverse locuri pot face configurarea programelor care afiseaza paginile de manual un adevarat cosmar).