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

Dňa 30. novembra 2010 David Collier napísal:

Všimol som si, že v busyboxe sú odkazy rozdelené do týchto štyroch adresárov.
Existuje nejaké jednoduché pravidlo na určenie, v ktorom adresári by mal ležať ktorý z odkazov ...
Napríklad kill je v /bin a killall je v /usr/bin... V tomto rozdelení nevidím žiadnu logiku.

Pravdepodobne viete, že Ken Thompson a Dennis Ritchie vytvorili Unix na PDP-7 v roku 1969. Takže okolo roku 1971 upgradovali na PDP-11 s párom diskov RK05 (každý 1,5 megabajtu).

Keď operačný systém narástol a už sa nezmestil na prvý disk (na ktorom sa nachádzal koreňový FS), presunuli časť na druhý, kde sa nachádzali domovské adresáre (preto sa bod pripojenia volal / usr - od slova používateľ). Zduplikovali tam všetky potrebné adresáre OS (/bin, /sbin, /lib, /tmp ...) a dali súbory na nový disk, pretože na starom sa minulo miesto. Potom mali tretí disk, pripojili ho do adresára /home a tam presunuli domovské adresáre používateľov, aby OS mohol zabrať všetok zvyšný priestor na dvoch diskoch a tieto boli až tri megabajty (Wow!).

Samozrejme, museli zaviesť pravidlo, že „keď sa operačný systém nabootuje, musí byť schopný pripojiť druhý disk do /usr, takže nedávajte programy ako mount na druhý disk do /usr, inak budete mať problém s kuracím a vaječným." Je to také jednoduché. A to bolo v Unixe V6 pred 35 rokmi.

Rozdelenie /bin a /usr/bin (a všetkých takýchto adresárov) je dedičstvom týchto udalostí, implementačným detailom zo 70. rokov, ktorý byrokrati kopírovali už desaťročia. Nikdy nepoložili otázku prečopráve to urobili. Toto rozdelenie prestalo dávať zmysel ešte pred vytvorením Linuxu, a to z niekoľkých dôvodov:

  1. Pri zavádzaní sa používa initrd alebo initramfs, ktorý sa stará o problémy typu „tento súbor potrebujeme skôr ako ten“. Teda máme už má dočasný súborový systém, ktorý sa používa na načítanie všetkého ostatného.
  2. Zdieľané knižnice (ktoré do Unixu pridali chlapci z Berkley) vám neumožňujú meniť obsah /lib a /usr/lib nezávisle. Tieto dve časti sa musia zhodovať, inak nebudú fungovať. To sa nestalo v roku 1974, pretože vtedy mali určitú nezávislosť kvôli statickému prepojeniu.
  3. Lacné pevné disky prelomili hranicu 100 megabajtov okolo roku 1990 a približne v rovnakom čase sa objavil softvér na zmenu veľkosti oddielov (partition magic 3.0 vyšiel v roku 1997).

Samozrejme, keďže existuje rozdelenie, niektorí ľudia prišli s pravidlami, ktoré to odôvodňujú. Napríklad koreňový oddiel je potrebný pre všetky druhy všeobecných funkcií OS a svoje lokálne súbory musíte vložiť do / usr. Alebo vložte / to, čo AT&T distribuuje, a do /usr to, čo vaša distribúcia pridala, IBM AIX alebo Dec Ultrix alebo SGI Irix a /usr/local obsahuje súbory špecifické pre váš systém. A potom sa niekto rozhodol, že /usr/local nie je to správne miesto na inštaláciu nového softvéru, takže pridajte /opt! Nebudem prekvapený, ak sa objaví aj /opt/local ...

Samozrejme, v priebehu 30 rokov kvôli tomuto oddeleniu prišli a zanikli všetky druhy zaujímavých pravidiel špecifických pre distribúciu. Napríklad "/tmp sa pri reštarte vymaže, ale /usr/tmp nie." (A v Ubuntu v zásade neexistuje /usr/tmp a v Gentoo /usr/tmp je symbolický odkaz na /var/tmp, ktorý teraz podlieha tomuto pravidlu a pri reštarte sa nevymaže. Áno, toto bolo všetko predtým Stáva sa tiež, že koreňový FS je len na čítanie a potom nemusíte nič zapisovať ani do /usr, ale musíte zapisovať do /var. väčšinou nedá sa zapísať okrem /etc, ktorý sa niekedy pokúšal presunúť do /var ...)

Byrokrati ako Linux Foundation (ktorá pred rokmi pohltila Free Standards Group počas jej expanzie) s radosťou dokumentujú a komplikujú tieto pravidlá bez toho, aby sa snažili zistiť, prečo tam boli. Čo si neuvedomujú je, že Ken a Dennis práve presunuli časť OS do svojho domovského adresára, pretože disk RK05 na PDP-11 bol príliš malý.

Som si celkom istý, že busybox jednoducho ukladá súbory rovnakým spôsobom, ako sa historicky vyvíjal. Doteraz na to neexistuje žiadny skutočný dôvod. Osobne robím iba odkazy /bin, /sbin a /lib na podobné adresáre v /usr. Koniec koncov, ľudia, ktorí pracujú s vstavaným softvérom, sa snažia pochopiť a zjednodušiť ...

Zdroj: hab.com

Pridať komentár