Razlika između inačica stranice Hijerarhija datotečnog sustava

Izvor: HrOpenWiki
Skoči na: orijentacija, traži
m (Ideja sortiranja datoteka)
m
 
Redak 1: Redak 1:
Linux je naslijedio hijerarhiju (strukturu) datotečnog sustava od [[Unix]]a iako ne potpuno dosljedno (ovisi od distribucije do distribucije).
+
Linux je naslijedio hijerarhiju (strukturu) datotečnog sustava od [[Unix]]a iako ne sasvim dosljedno (ovisi od distribucije do distribucije).
  
 
==Ideja sortiranja datoteka==
 
==Ideja sortiranja datoteka==

Trenutačna izmjena od 08:53, 18. ožujka 2011.

Linux je naslijedio hijerarhiju (strukturu) datotečnog sustava od Unixa iako ne sasvim dosljedno (ovisi od distribucije do distribucije).

Ideja sortiranja datoteka

Prije nego krenemo dobro je imati u glavi:

  • datoteka (eng. file) je neki podatak ili program, ukratko - nositelj sadržaja;
  • direktorij ili mapa (eng. folder) je ladica koja objedinjuje datoteke, ali samostalno ne predstavlja nikakav sadržaj.

I to je osnovna zamisao svega: imamo datoteke koje treba rasporediti po direktorijima radi lakšeg snalaženja, ali i efikasnijeg funkcioniranja sustava.

Kako rasporediti alat?

Razlikujemo dva logička pristupa rasporedu podataka:

  1. samodostatna pakiranja u kojima na jedno mjesto stavljamo jedan program i sve njegove popratne datoteke, biblioteke i pomoćne programe;
  2. pakiranja datoteka po svrsi i tipu u kojima se jedan tip datoteka nalazi unutar jednog paketa makar ih koriste različiti programi (npr. biblioteke svih programa se nalaze unutar direktorija biblioteke).

Prednost prvog pristupa je u tome da imamo funkcionalno sve na jednom mjestu (kao da držimo sve za popravljati kosilicu na jednom mjestu - odmah vidimo čime raspolažemo), no nedostatak je u tome što imamo puno duplikata (ključ 15 i čekić za servis kosilice u jednoj ladici i isti takav ključ i čekić za servisiranje motorne pile u drugoj ladici). U računalu se taj nedostatak manifestira kao trošenje diskovnog prostora.

Prednost drugog pristupa je u tome da je puno efikasniji na prostoru (ako postoji negdje ključ 15, onda ćemo ga koristiti za koju god nam namjenu treba i on će uvijek stajati u ladici za ključeve), ali stvari tada treba tražiti što je i glavni nedostatak. Međutim, računalo puno lakše traži nego mi... tako da drugi pristup računalu i ne predstavlja neki problem kao čovjeku.

Dakako, osim nabrojanih svaki pristup ima i drugih prednosti i nedostataka (no njih nećemo navoditi jer se to tiče direktno funkcioniranja računala). Kako uvijek u takvim situacijama biva, uglavnom se koristi miješani pristup koji uzima najbolje od oba, ali uz pokoju manu. Teško je reći koji je pristup generalno bolji, jer sve ovisi o situaciji i namjeni.

Windows platforma više naginje prvom pristupu: većina programa se standardno nalazi u svojim direktorijima unutar direktorija Program Files, a jedino se biblioteke stavljaju na zajedničkom mjesto (dll datoteke). Unix sustavi imaju drugačiju filozofiju. Unix se sastoji od puno malih alata koji rade zajedno da bi napravili određeni zadatak i tako se programi međusobno koriste, a da bi se lakše našli svi se nalaze na jednom ili samo par mjesta. Također biblioteke imaju svoje zajedničko mjesto, pa ako neki program treba neku biblioteku ide tražiti među biblioteke, a ne po cijelom sustavu.

Hijerarhija datoteka u Linuxu

Hijerarhija (raspored datoteka po direktorijima) na Linuxu je više-manje standardizirana i možemo je ilustrirati pomoću drveta koje se grana od debla prema krošnji.

Pregled osnovnih direktorija

Deblo u ovom slučaju je tzv. korijenski (eng. root) direktorij (oznaka /). On je prvi i ne nalazi se ni u jednom drugom direktoriju. Svi ostali direktoriji i sadržaji se nalaze unutar njega (grane tog drveta).

Izgled i značenja pojedinih direktorija u stablu predočena su u ovoj tabeli (neki su pod-direktoriji navedeni samo kao primjer, iako za korisnika nemaju veliku važnost):

Direktorij Opis
/ Primarna hijerarhija root direktorij od cijelokupne hijerarhije sistema, početak.
/bin/ Izvršne datoteke bitnih naredbi na nivou tzv. Single user moda, naredbe za sve korisnike (npr. cat, ls, cp).
/boot/ Datoteke potrebne za pokretanje sustava (npr. kernel, GRUB datoteke). Često i na zasebnoj particiji.
/dev/ Datoteke koje predstavljaju same fizičke ili virtualne uređaje (npr. diskovi, USB i drugi portovi).
/etc/ Konfiguracijske datoteke sustava koje vrijede za cijeli sustav (ali ne i za korisničke programe i postavke koje su spremljene u korisničkom direktoriju /home/ime/)
/etc/opt/
Konfiguracijske datoteke za programe koji se nalaze u direktoriju /opt/.
/etc/X11/
Konfiguracijske datoteke za X Window System, tzv. grafički podsustav u kojem se izvršavaju grafička okruženja kao KDE ili Gnome.
/etc/sgml/
Konfiguracijske datoteke za SGML.
/etc/xml/
Konfiguracijske datoteke za XML.
/home/ Korisnički home direktoriji (još i Osobna mapa) - sadrže korisničke privatne podatke i postavke. Često (i preporučeno) na posebnoj particiji, odvojenoj od sustava.
/lib/ Bitne biblioteke za programe iz direktorija /bin/ i /sbin/.
/media/ Mjesto/točka za montiranje za izmjenjivih medija kao npr. CD-ROM ili USB memorija (od FHS-2.3).
/mnt/ Privremeno montirani datotečni sustavi. Nisu nužni za funkcioniranje sustava.
/opt/ Neobavezni, dodatni aplikacijski paketi i programi.
/proc/ Virtualni datotečni sustav za prikaz rada kernela i procesa u obliku tekstualnih i sličnih datoteka.
/root/ Home direktorij od root korisnika. U pravilu se nalazi na istoj particiji gdje i cijeli sustav (sadržaj root direktorija).
/sbin/ Bitni sistemski programi (npr., init, route, ifconfig, ...).
/srv/ Specifični podaci posluženi od strane sistema...
/tmp/ Privremeni podaci, koji se obično ne čuvaju nakon ponovnog pokretanja računala.
/usr/ Sekundarna hijerarhija za korisničke podatke; sadrži glavninu više korisničkih alata i aplikacija.
/usr/bin/
Manje bitne izvršne datoteke programa i naredbe (nepotrebne u tzv. Single user modu); namijenjeno za sve korisnike.
/usr/include/
Standardne include datoteke.
/usr/lib/
Biblioteke od programa u /usr/bin/ i /usr/sbin/.
/usr/sbin/
Manje bitne sistemske datoteke (npr. daemoni za različite servise).
/usr/share/
Datoteke koje su neovisne o arhitekturi (dijeljene datoteke), npr. slike/ikone ili dokumentacija.
/usr/src/
Datoteke izvornog koda (npr. kernelov izvorni kod).
/usr/X11R6/
X Window System, Verzija 11, izdanje 6.
/usr/local/
Tercijalna hijerarhija za lokalne podatke. Strogo prema standardu, /usr/local/ služi za podatke koji moraju biti pohranjeni na lokalnom računalu (suprotno od /usr/, koji mogu biti montirani preko mreže.
/var/ Promjenjljive datoteke kao što su log-ovi, spool-ovi isl.
/var/lib/
Podaci koji se mijenjaju pripadajućim programima (npr. baze podataka).
/var/lock/
Zaključane datoteke. Datoteke koje drže tragove o programima koji se izvršavaju.
/var/log/
Log datoteke.
/var/mail/
Korisnički e-mail sandučići.
/var/run/
Informacije o sistemu od zadnjeg pokretanja.
/var/spool/
Spool za zadatke koji trebaju tek biti učinjeni.
/var/tmp/
Privremene datoteke koje trebaju preživjeti reboot računala.

Dodatni (nestandardni) direktoriji

Neke preporuke

Što ako se nešto nađe na krivom mjestu?

Standard postoji da bi svi imali na kraju koristi od toga. Međutim, neki autori aplikacija misle da znaju bolje i izmišljaju toplu vodu ili se jednostavno ne drže standarda jer ne znaju da postoji.

To se često može vidjeti na Windows platformi: iako je Microsoft namijenio Program Files za sve korisničke programe, mnogi programi se instaliraju drugdje (ili daju korisniku da ih instalira na neko svoje mjesto), a biblioteke i poprate datoteke razbacaju još koje kuda po sustavu. To je dakako loše, jer ubrzo nastaje takav nered u sustavu da se više nitko ne može snaći. Microsoft je tu samo kriv što ne provodi strože ta pravila koja je propisao.

U Linuxu, ako se neka datoteka nalazi na krivom mjestu (tamo gdje ne bi trebala, tj. ne po pravilima te Linux distribucije) onda je greška (bug) i treba je prijaviti. Drugi Unix kompatibilni sustavi često kritiziraju Linux što se sam ne drži originalnog Unix standarda.

Zaključak

Ako neki program nudi određenu funkcionalnost i to radi dobro, onda ga je logično iskoristiti u svom programu, a ne razvijati vlastito rješenje. Međutim, ako ne mogu svi korisnici imati pristup tom pomoćnom programu ili ako postoji mogućnost da se taj pomoćni program prestane razvijati onda ga i nije logično koristiti. No Linux je projekt iz domene slobodnog softvera i kao takav ti nedostaci nestaju (u jednoj mjeri): svi programi su pod slobodnim licencama i može ih koristiti svako (čak su mogući automatski sustavi koji dobavljaju te programe iz zajedničkih repozitorija, pogledaj upravitelji paketima) te je moguće preuzeti izvorni kod i nastaviti razvijati program za svoje potrebe ukoliko originalni projekt stane s razvojem ili krene drugim pravcem (tako ne postoji negativna strana ovisnosti o drugima). Kad su stvari tako posložene, onda je jasno zašto je Linux sustav u kojem više programa radi zajedno da bi izvršilo neki zadatak. Shodno tome, Linuxu više odgovara pristup razvrstavanja datoteka po tipu, nego u samodostatne cjeline pa takav pristup (hijerarhiju) i koristi.

Linuxova hijerarhija datotečnog sustava vjerojatno nije jednostavna ni intuitivna početnicima, ali za sad dobro radi. Vjerojatno ima načina da se ta struktura poboljša (npr. da se koriste duža imena), ali bi se tada pokidala kompatibilnost s Unixom, što se za sada ne planira, iako ima distribucija koje su krenule tim putem, npr. GoboLinux. No onome tko se želi malo bolje upoznati s Linux sustavom upoznavanje ove hijerarhije ne bi trebao predstavljati problem, a omogućit će mu bolje snalaženje unutar samog sustava i otkriti da iza te strukture stoje zapravo dobri razlozi.

Poveznice i reference