Skirtumas tarp bin, sbin, usr/bin, usr/sbin

30 m. lapkričio 2010 d. Davidas Collieris rašė:

Pastebėjau, kad busybox nuorodos suskirstytos į šiuos keturis katalogus.
Ar yra kokia nors paprasta taisyklė, leidžianti nustatyti, kuriame kataloge turi būti nuorodų?
Pvz., kill yra /bin, o killall yra /usr/bin... Nematau jokios logikos šiame padalinyje.

Tikriausiai žinote, kad Kenas Thompsonas ir Dennisas Ritchie sukūrė Unix PDP-7 1969 m. Taigi, maždaug 1971 m., jie atnaujino į PDP-11 su pora RK05 diskų (kiekvienas po 1,5 megabaitų).

Kai operacinė sistema išaugo ir nebetelpa į pirmąjį diską (kuriame buvo šakninis FS), jie perkėlė dalį į antrąjį, kur buvo namų katalogai (todėl prijungimo taškas buvo vadinamas /usr - nuo žodžio Vartotojas). Ten dubliavo visus reikiamus OS katalogus (/bin, /sbin, /lib, /tmp ...) ir sudėjo failus į naują diską, nes senajame pritrūko vietos. Tada jie turėjo trečią diską, sumontavo jį į /home katalogą ir ten perkėlė vartotojų namų katalogus, kad OS galėtų užimti visą likusią vietą dviejuose diskuose. trys megabaitai (Oho!).

Žinoma, jie turėjo sukurti taisyklę, kad „paleidus operacinę sistemą, ji turi turėti galimybę prijungti antrą diską į /usr, todėl nedėkite tokių programų kaip mount ant antrojo disko į /usr arba turėsite galimybę vištienos ir kiaušinio problema“. Tai taip paprasta. Ir tai buvo Unix V6 prieš 35 metus.

/bin ir /usr/bin (ir visų tokių katalogų) padalijimas yra tų įvykių palikimas, 70-ųjų įgyvendinimo detalė, kurią biurokratai kopijuoja jau dešimtmečius. Jie niekada neuždavė klausimo kodėljie tiesiog tai padarė. Šis padalijimas nustojo prasmingas dar prieš sukuriant „Linux“ dėl kelių priežasčių:

  1. Paleidžiant, naudojamas initrd arba initramfs, kuris pasirūpina tokiomis problemomis kaip „mums reikia šio failo prieš tą“. Taigi, mes turime jau turi laikina failų sistema, kuri naudojama viskam kitam įkelti.
  2. Bendrinamos bibliotekos (kurias į Unix įtraukė Berkley vaikinai) neleidžia atskirai keisti /lib ir /usr/lib turinio. Šios dvi dalys turi atitikti, kitaip jos neveiks. Tai neįvyko 1974 m., nes tuo metu jie turėjo tam tikrą nepriklausomybę dėl statinio susiejimo.
  3. Pigūs kietieji diskai 100 megabaitų barjerą įveikė apie 1990 m. ir maždaug tuo pačiu metu pasirodė skaidinio dydžio keitimo programinė įranga (partition magic 3.0 pasirodė 1997 m.).

Žinoma, kadangi yra skirstymas, kai kurie žmonės sugalvojo tai pateisinančias taisykles. Kaip ir šakninis skaidinys reikalingas visoms bendroms OS funkcijoms, o vietinius failus reikia įdėti į / usr. Arba įrašykite / ką AT&T platina ir /usr, ką jūsų platinimas, IBM AIX arba Dec Ultrix arba SGI Irix pridėjo, o /usr/local yra jūsų sistemai būdingi failai. Ir tada kažkas nusprendė, kad /usr/local nėra tinkama vieta naujai programinei įrangai įdiegti, todėl pridėkime /opt! Nenustebsiu, jei pasirodys ir /opt/local...

Žinoma, per 30 metų dėl šio atskyrimo atsirado ir išnyko visokių įdomių, su platinimu susijusių taisyklių. Pavyzdžiui, „/tmp išvalomas paleidus iš naujo, bet /usr/tmp – ne“. (Ir Ubuntu iš principo nėra /usr/tmp, o Gentoo /usr/tmp yra simbolinė nuoroda į /var/tmp, kuriai dabar galioja ta taisyklė ir ji nėra išvalyta perkrovimo metu. Taip, tai buvo viskas anksčiau Taip pat atsitinka, kad šakninė FS yra tik skaitoma ir tada nereikia nieko rašyti į /usr, bet reikia rašyti į /var. iš esmės negali būti parašytas, išskyrus /etc, kurį kartais buvo bandoma perkelti į /var ...)

Biurokratai, tokie kaip „Linux Foundation“ (kuris prieš daugelį metų prarijo Laisvųjų standartų grupę per savo plėtrą) mielai dokumentuoja ir apsunkina šias taisykles, niekada nebandydami išsiaiškinti, kodėl jos atsirado. Jie nesuvokia, kad Kenas ir Dennisas tiesiog perkėlė dalį OS į savo namų katalogą, nes PDP-05 RK11 diskas buvo per mažas.

Esu tikras, kad busybox tiesiog deda failus taip pat, kaip istoriškai vystėsi. Iki šiol nėra jokios realios priežasties tai daryti. Asmeniškai aš tiesiog darau /bin, /sbin ir /lib nuorodas į panašius katalogus /usr. Galų gale, žmonės, dirbantys su įterpta programine įranga, bando suprasti ir supaprastinti ...

Šaltinis: www.habr.com

Добавить комментарий