Bin, sbin, usr/bin, usr/sbin arteko aldea

30eko azaroaren 2010ean, David Collier-ek idatzi zuen:

Ohartu nintzen busybox-en estekak lau direktorio hauetan banatuta daudela.
Ba al dago arau sinpleren bat esteketatik zein direktoriotan egon behar den zehazteko...
Adibidez, kill /bin-en dago, eta killall /usr/bin-en... Nik ez dut logikarik ikusten zatiketa honetan.

Seguruenik badakizu Ken Thompson eta Dennis Ritchie-k Unix sortu zutela PDP-7-n 1969an. Beraz, 1971 inguruan, PDP-11 batera berritu zuten RK05 disko pare batekin (1,5 megabyte bakoitza).

Sistema eragilea hazi zenean eta lehen diskoan kabitzen ez zenean (erroa FS zegoen lekuan), haren zati bat bigarrenera eraman zuten, non etxeko direktorioak kokatzen ziren (horrela, muntatze-puntua / usr deitzen zen - batetik. hitz erabiltzailea). Beharrezko OS direktorio guztiak bikoiztu zituzten bertan (/bin, /sbin, /lib, /tmp ...) eta fitxategiak disko berri batean jarri zituzten, zaharrari lekurik gabe geratu zelako. Ondoren hirugarren disko bat lortu zuten, /home direktorioan muntatu zuten eta erabiltzaileen hasierako direktorioak hara eraman zituzten, OSak bi diskotan geratzen den leku guztia har zezan, eta hauek ziren. hiru megabyte (aupa!).

Noski, arau bat egin behar izan zuten: "sistema eragilea abiarazten denean, /usr-en bigarren disko bat muntatu ahal izan behar du, beraz, ez jarri bigarren diskoan mount bezalako programak /usr-en edo izango duzu. oilasko eta arrautza arazo bat". Hain sinplea da. Eta hori Unix V6-n zegoen duela 35 urte.

/bin eta /usr/bin zatitzea (eta horrelako direktorio guztiak) gertaera horien ondarea da, 70eko hamarkadako ezarpen xehetasun bat, orain hamarkadatan burokratek kopiatu dutena. Ez zuten inoiz galderarik egin zergatikbesterik ez zuten egin. Zatiketa honek zentzurik gabe utzi zuen Linux sortu aurretik ere, hainbat arrazoirengatik:

  1. Abiatzerakoan, initrd edo initramfs bat erabiltzen da, "fitxategi hau baino lehen behar dugu" bezalako arazoez arduratzen dena. Horrela, badugu jada gainerako guztia kargatzeko erabiltzen den aldi baterako fitxategi-sistema.
  2. Liburutegi partekatuek (Berkley-ko mutilek Unixera gehitu zituztenak) ez dizute uzten /lib eta /usr/lib-en edukia modu independentean aldatzea. Bi zati hauek bat egin behar dute edo ez dute funtzionatuko. Hau ez zen gertatu 1974an, orduan independentzia pixka bat zutelako lotura estatikoengatik.
  3. Disko gogor merkeek 100 megabyteko muga hautsi zuten 1990 inguruan, eta garai berean, partizioak aldatzeko softwarea agertu zen (3.0an atera zen partizio magia 1997).

Jakina, zatiketa dagoenez, batzuek hori justifikatzen duten arauak asmatu dituzte. Esaterako, root partizioa beharrezkoa da sistema eragilearen funtzio orokor guztietarako, eta zure fitxategi lokalak / usr-en jarri behar dituzu. Edo sartu / zer banatzen duen AT&T-k, eta /usr-en zure banaketak, IBM AIX edo Dec Ultrix-ek edo SGI Irix-ek gehitutakoa, eta /usr/local-ek zure sistemarako berariazko fitxategiak ditu. Eta orduan norbaitek erabaki zuen /usr/local ez zela toki egokia software berria instalatzeko, beraz, gehi dezagun /opt! Ez nau harrituko /opt/local ere agertzen bada...

Jakina, 30 urtean zehar, bereizketa honen ondorioz, banaketa-arau zehatz interesgarri guztiak etorri eta joan dira. Adibidez, "/tmp garbitzen da berrabiarazten denean, baina /usr/tmp ez". (Eta Ubuntun ez dago /usr/tmprik printzipioz, eta Gentoo-n /usr/tmp esteka sinbolikoa da /var/tmp, orain arau horren menpe dagoena, eta ez da garbitzen berrabiarazteko. Bai, hau zen guztia aurretik Gertatzen da FS erroa irakurtzeko soilik dela, eta orduan ere ez duzu ezer idatzi behar /usr-en, baina /var-era idatzi behar duzu. gehienbat ezin da idatzi /etc-en izan ezik, batzuetan /var-era mugitzen saiatu zen...)

Linux Fundazioa bezalako burokratak (duela urte bere hedapenean Free Standards Group irentsi zuena) pozik daude arau hauek dokumentatu eta zailduz, inoiz zergatik zeuden asmatzen saiatu gabe. Konturatzen ez direna zera da, Ken eta Dennis-ek sistema eragilearen zati bat beren etxeko direktoriora eraman dutela PDP-05-ko RK11 diskoa txikiegia zelako.

Ziur nago busybox-ek fitxategiak historikoki egin duen moduan jartzen dituela. Ez dago benetako arrazoirik orain arte. Pertsonalki, /bin, /sbin eta /lib esteka egiten dut /usr-en antzeko direktorioetara. Azken finean, kapsulatutako softwarearekin lan egiten duten pertsonak ulertzen eta sinplifikatzen saiatzen dira ...

Iturria: www.habr.com

Gehitu iruzkin berria