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

David Collier je 30. studenog 2010. napisao:

Primijetio sam da su u busyboxu linkovi podijeljeni u ova četiri direktorija.
Postoji li neko jednostavno pravilo za određivanje u kojem direktoriju treba ležati koja od veza ...
Recimo, kill je u /bin, a killall je u /usr/bin... Ne vidim nikakvu logiku u ovoj podjeli.

Vjerojatno znate da su Ken Thompson i Dennis Ritchie stvorili Unix na PDP-7 1969. Tako su oko 1971. nadogradili na PDP-11 s parom RK05 diskova (1,5 megabajta svaki).

Kada je operativni sustav narastao i više nije stao na prvi disk (na kojem se nalazio korijenski FS), dio su premjestili na drugi, gdje su se nalazili kućni direktoriji (dakle, točka montiranja se zvala / usr - od riječi korisnik). Tamo su duplicirali sve potrebne OS direktorije (/bin, /sbin, /lib, /tmp ...) i stavili datoteke na novi disk, jer je na starom ponestalo mjesta. Zatim su imali treći disk, postavili su ga u /home direktorij i tamo premjestili korisničke početne direktorije kako bi OS mogao zauzeti sav preostali prostor na dva diska, a to su bili čak tri megabajta (vau!).

Naravno, morali su napraviti pravilo da "kada se operativni sustav podigne, mora moći montirati drugi disk u /usr, tako da ne stavljajte programe poput montiranja na drugi disk u /usr ili ćete imati problem kokoši i jajeta." Tako je jednostavno. I to je bilo u Unixu V6 prije 35 godina.

Razdvajanje /bin i /usr/bin (i svih takvih direktorija) nasljeđe je tih događaja, detalj implementacije iz 70-ih koji birokrati kopiraju već desetljećima. Nikada nisu postavili pitanje zaštoupravo su to učinili. Ova podjela je prestala imati smisla čak i prije nego što je Linux stvoren, iz nekoliko razloga:

  1. Prilikom dizanja, koristi se initrd ili initramfs, koji rješava probleme poput "trebamo ovu datoteku prije one." Dakle, imamo već jesam privremeni datotečni sustav koji se koristi za učitavanje svega ostalog.
  2. Dijeljene biblioteke (koje su Unixu dodali momci iz Berkleya) ne dopuštaju vam da neovisno mijenjate sadržaj /lib i /usr/lib. Ova dva dijela moraju se podudarati ili neće raditi. To se nije dogodilo 1974. jer su tada imali određenu neovisnost zbog statičkog povezivanja.
  3. Jeftini tvrdi diskovi probili su granicu od 100 megabajta oko 1990., a otprilike u isto vrijeme pojavio se softver za promjenu veličine particija (partition magic 3.0 pojavio se 1997.).

Naravno, budući da postoji podjela, neki su smislili pravila koja to opravdavaju. Kao, root particija je potrebna za sve vrste općih značajki OS-a, a svoje lokalne datoteke morate staviti u / usr. Ili stavite u / ono što AT&T distribuira, au /usr ono što je vaša distribucija, IBM AIX ili Dec Ultrix ili SGI Irix dodala, a /usr/local sadrži datoteke specifične za vaš sustav. A onda je netko odlučio da /usr/local nije pravo mjesto za instaliranje novog softvera, pa dodajmo /opt! Neću se iznenaditi ako se pojavi i /opt/local ...

Naravno, tijekom 30 godina, zbog ovog odvajanja, svakakva zanimljiva pravila specifična za distribuciju su dolazila i nestajala. Na primjer, "/tmp se briše pri ponovnom pokretanju, ali /usr/tmp nije." (I u Ubuntuu ne postoji /usr/tmp u principu, au Gentoou /usr/tmp je simbolička poveznica na /var/tmp, koji sada podliježe tom pravilu, i ne briše se pri ponovnom pokretanju. Da, ovo Bilo je sve prije. Također se događa da je root FS samo za čitanje, i tada ne morate ništa pisati u /usr, ali morate pisati u /var. u osnovi ne može se pisati osim u /etc, koji se ponekad pokušavao premjestiti u /var ...)

Birokrati poput Zaklade Linux (koja je progutala Free Standards Group tijekom svoje ekspanzije prije nekoliko godina) rado dokumentiraju i kompliciraju ova pravila bez ikakvog pokušaja dokučiti zašto su tu. Ono što ne shvaćaju je da su Ken i Dennis upravo premjestili dio OS-a u svoj matični direktorij jer je RK05 disk na PDP-11 bio premalen.

Prilično sam siguran da busybox samo stavlja datoteke na isti način kao što je to činio u prošlosti. Za sada nema pravog razloga za to. Osobno, samo /bin, /sbin i /lib povezuju na slične direktorije u /usr. Uostalom, ljudi koji rade s ugrađenim softverom pokušavaju razumjeti i pojednostaviti ...

Izvor: www.habr.com

Dodajte komentar