Razlika između bin, sbin, usr/bin, usr/sbin

30. novembra 2010. godine Dejvid Kolijer (David Collier) je napisao:

Primijetio sam da su u busybox-u linkovi raspoređeni po ovim četiri direktorijuma.
Postoji li neko jednostavno pravilo koje može odrediti u kojem direktorijumu koji od linkova treba da se nalazi…
Na primer, kill se nalazi u /bin, dok je killall u /usr/bin… Ne vidim nikakvu logiku u takvom razdvajanju.

Verovatno znate da su Ken Tompson i Denis Riči stvorili Unix na PDP-7 1969. godine. Dakle, oko 1971. su prešli na PDP-11 sa par diskova RK05 (po 1,5 megabajta svaki).

Kada je operativni sistem porastao i više nije stajao na prvom disku (na kojem je bila smeštena korenska datotečna sistem), premestili su deo na drugi, gde su se nalazile domaće direktorije (zato su tačka montaže nazvana /usr — od reči user). Tamo su duplicirali sve neophodne direktorije OS-a (/bin, /sbin, /lib, /tmp …) i stavljali fajlove na novi disk, jer je stari bio pun. Zatim su dobili treći disk, montirali su ga u direktoriju /home i premestili tamo domaće direktorije korisnika, kako bi OS mogao da zauzme sav preostali prostor na dva diska, a to su bila čitava tri megabajta (vau!).

Naravno, morali su uvesti pravilo da "kada se operativni sistem učitava, mora biti u mogućnosti da montira drugi disk u direktoriju /usr, pa ne treba stavljati programe poput mount na drugi disk u /usr, inače ćemo imati problem koke i jaja". Tako jednostavno. I to se odnosilo na Unix V6 pre 35 godina.

Razdvajaње /bin i /usr/bin (i svih sličnih direktorija) je rezultat tih događaja, detalj implementacije iz 70-ih, koji se i dalje, tokom decenija, ponavljao od strane birokrata. Nikada nisu postavljali pitanje je merjeni predmet prav te dolžine, kot jo je pokazal. Ravnil bo samo pokazal njegovo velikost in nič več. Ni filozofski kamen, temveč zgolj lesena deska, s katero merimo., jednostavno su radili tako. Ovo razdvajanje je prestalo imati smisla još pre nego što je Linux stvoren, iz nekoliko razloga:

  1. Tokom učitavanja se koristi initrd ili initramfs, koji se bavi problemima poput "ovaj fajl nam je potreban pre nego što drugi". Tako da imamo već privremeni datotečni sistem koji se koristi za učitavanje svega ostalog.
  2. Deljene knjižnice (ki so jih dodali v Unix fantje iz Berkleyja) ne omogočajo neodvisnega spreminjanja vsebin v /lib in /usr/lib. Ta dva dela morata biti usklajena, sicer ne bosta delovala. Do tega ni prišlo leta 1974, saj so takrat imeli določeno neodvisnost zaradi statične povezave.
  3. Cene trdi diski so nekje okoli leta 1990 presegli mejo 100 megabajtov in približno takrat so se pojavili programi za spreminjanje velikosti particij (partition magic 3.0 je bila izdana leta 1997).

Seveda, ker obstaja razmejitev, so nekateri ljudje prišli do pravil, ki jo opravičujejo. Na primer, korenska particija je potrebna za različne splošne stvari operacijskega sistema, medtem ko v /usr shranjujemo svoje lokalne datoteke. Ali pa v / dajemo tisto, kar distribuira AT&T, medtem ko v /usr – tisto, kar je dodal vaš distribucijski paket, IBM AIX, Dec Ultrix ali SGI Irix, v /usr/local pa so datoteke specifične za vaš sistem. Potem pa je nekdo sklenil, da /usr/local ni primerno mesto za namestitev nove programske opreme, zato dodajmo še /opt! Ne bi se čudil, če se pojavi še /opt/local...

Seveda so se v preteklih 30 letih zaradi take razmejitve pojavile in izginile različne zanimive specifikacije za posamezne distribucije. Na primer, "/tmp se očisti ob ponovnem zagonu, /usr/tmp pa ne." (In v Ubuntu /usr/tmp sploh ni, v Gentoo pa je /usr/tmp simbolična povezava do /var/tmp, na katerega se sedaj nanaša to pravilo, in se ne očisti ob ponovnem zagonu. Da, to je bilo še pred tmpfs. Včasih pa je tudi korenska datotečna sistem na voljo samo za branje, tako da tudi v /usr ni potrebno nič pisati, temveč se piše v /var. Ali v / večinoma ni mogoče pisati, razen tistega, kar je v /etc, kar so včasih poskušali prenesti v /var...)

Birokrati, kot je Linux Foundation (ki je pred leti absorbirala Free Standards Group med širjenjem), se z veseljem dokumentirajo in zapletajo ta pravila, ne da bi poskušali razumeti, zakaj so se pojavila. Ne zavedajo se, da sta Ken in Dennis preprosto prenesla del operacijskega sistema v svojo domačo mapo, ker je bil disk RK05 na PDP-11 premajhen.

Skoraj sem prepričan, da busybox preprosto postavlja datoteke tako, kot je to zgodovinsko nastalo. Ni pravega razloga, da bi to še naprej počeli. Osebno naredim /bin, /sbin in /lib povezave na ustrezne mape v /usr. Ljudje, ki delajo z vgrajeno programsko opremo, se namreč trudijo razumeti in poenostaviti...

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster