Rozdiel medzi bin, sbin, usr/bin, usr/sbin

30. novembra 2010 David Collier napísal:

Všimol som si, že v busybox sú odkazy rozložené po týchto štyroch adresároch.
Existuje nejaké jednoduché pravidlo, ktoré by určilo, v ktorom adresári má byť ktorý odkaz…
Napríklad, kill je v /bin, zatiaľ čo killall je v /usr/bin… Nevidím v tom žiadnu logiku.

Určite viete, že Ken Thompson a Dennis Ritchie vytvorili Unix na PDP-7 v roku 1969. Takže asi v roku 1971 prešli na PDP-11 s pár diskami RK05 (s kapacitou 1,5 megabajta každý).

Keď sa operačný systém rozrástol a prestal sa zmestili na prvý disk (na ktorom bola umiestnená koreňová FS), presunuli časť na druhý, kde sa nachádzali domáce adresáre (preto sa bod pripojenia nazýval /usr — od slova užívateľ). Skopírovali tam všetky potrebné adresáre OS (/bin, /sbin, /lib, /tmp …) a ukladali súbory na nový disk, pretože na starom došlo miesto. Potom dostali tretí disk, pripojili ho do adresára /home a presunuli tam domáce adresáre používateľov, aby mohol OS využiť všetok zvyšný priestor na dvoch diskoch, a to bolo celých tri megabajty (wow!).

Samozrejme, museli zaviesť pravidlo, že "keď sa operačný systém spúšťa, musí byť schopný pripojiť druhý disk do adresára /usr, takže nie je dobré ukladať programy ako mount na druhý disk do /usr, inak dostaneme problém s kuracou a vajcom". Takto jednoducho. A to sa týkalo Unix V6 pred 35 rokmi.

Rozdelenie /bin a /usr/bin (a všetkých podobných adresárov) je dôsledkom týchto udalostí, detail implementácie zo 70-tych rokov, ktorý sa dodnes, počas desaťročí, kopíroval byrokratmi. Nikdy sa nepýtali prečo, len to robili. Toto rozdelenie prestalo mať zmysel ešte predtým, než bol Linux vytvorený, z niekoľkých dôvodov:

  1. Pri spúšťaní sa používa initrd alebo initramfs, ktorý sa zaoberá problémami ako "tento súbor potrebujeme skôr ako ten". Takže máme u klienta dočasný súborový systém, ktorý sa používa na spustenie všetkého ostatného.
  2. Zdieľané knižnice (ktoré pridali chalani z Berkeley do Unixu) nedovoľujú samostatne meniť obsah /lib a /usr/lib. Tieto dve časti musia byť v súlade, inak nebudú fungovať. To sa nestávalo v roku 1974, pretože vtedy mali určitú nezávislosť kvôli statickému linkovaniu.
  3. Lacné pevné disky prekonali hranicu 100 megabajtov niekedy v roku 1990 a približne v tom istom čase sa objavili programy na zmenu veľkosti oddielov (partition magic 3.0 vyšla v roku 1997).

Samozrejme, keď už je rozdelenie, niektorí ľudia vymysleli pravidlá, ktoré ho ospravedlňujú. Napríklad, koreňový oddiel je potrebný na rôzne spoločné veci OS, a do /usr sa ukladajú lokálne súbory. Alebo do / sa umiestňuje to, čo distribuuje AT&T, a do /usr to, čo pridali váš distribútor, IBM AIX, alebo Dec Ultrix, alebo SGI Irix, a v /usr/local sú súbory špecifické pre vaše systémy. A potom niekto rozhodol, že /usr/local nie je vhodné miesto na inštaláciu nového softvéru, takže pridajme ešte /opt! Neprekvapilo by ma, keby sa objavila aj /opt/local…

Samozrejme, za 30 rokov kvôli takému rozdeleniu sa objavili a zmizli rôzne zaujímavé pravidlá špecifické pre jednotlivé distribúcie. Napríklad, „/tmp sa čistí pri reštartovaní, ale /usr/tmp – nie“. (A v Ubuntu /usr/tmp neexistuje, zatiaľ čo v Gentoo /usr/tmp je symbolický odkaz na /var/tmp, ku ktorému sa teraz vzťahuje toto pravidlo a nečistí sa pri reštartovaní. Áno, to všetko sa stalo ešte pred tmpfs. A občas je jadrový FS prístupný iba na čítanie, a v takom prípade netreba nič zapisovať do /usr, ale do /var. Alebo v / predovšetkým sa nedá zapisovať, okrem toho, že v /etc, ktorú sa občas snažili presunúť do /var…)

Byrokrati ako Linux Foundation (ktorí pred niekoľkými rokmi pohltili Free Standards Group počas expanzie) s radosťou dokumentujú a zložitým spôsobom tento pravidlá, ani sa nesnažia pochopiť, prečo vznikli. Nepáčia sa, že Ken a Dennis jednoducho presunuli časť OS do svojho domáceho adresára, pretože disk RK05 na PDP-11 bol príliš malý.

Som si takmer istý, že busybox jednoducho umiestňuje súbory tak, ako to historicky vzniklo. Nie je žiadny skutočný dôvod robiť to dodnes. Osobne vytváram /bin, /sbin a /lib ako odkazy na zodpovedajúce adresáre v /usr. Veď ľudia, ktorí pracujú s embedded softvérom, sa snažia rozumieť a zjednodušovať...

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster