Cûdahiya bin, sbin, usr/bin, usr/sbin

Di 30 Mijdar, 2010 de, David Collier nivîsand:

Min bala xwe dayê ku di busybox de zencîre li van çar pelrêçan têne dabeş kirin.
Ma qaîdeyek hêsan heye ku meriv diyar bike ka kîjan ji girêdanan divê di kîjan pelrêça de bimîne…
Mînak kill di /bin de ye, killall jî di /usr/bin de ye... Ez di vê dabeşkirinê de ti mantiqê nabînim.

Dibe ku hûn dizanin ku Ken Thompson û Dennis Ritchie di sala 7-an de li ser PDP-1969 Unix afirandin. Ji ber vê yekê, dora 1971-an, wan bi cotek dîskên RK11 (her yek 05 megabytes) nûve kirin PDP-1,5.

Gava ku pergala xebitandinê mezin bû û nema li ser dîska yekem (li ser ku root FS-ê lê bû) cih negirt, wan beşek veguhezand ya duyemîn, ku pelrêkên malê lê bûn (ji ber vê yekê, xala çiyê jê re hate gotin /usr - ji peyva bikaranîvan). Wan hemî pelrêçên OS-ê yên pêwîst li wir dubare kirin (/bin, /sbin, /lib, /tmp ...) û pelan danîn ser dîskek nû, ji ber ku cîhê kevin qediya. Dûv re dîskek sêyem a wan hebû, wan ew di pelrêça /home de siwar kirin û pelrêça malên bikarhêneran birin wir, da ku OS bikaribe hemî cîhê mayî li ser du dîskê bigire, û ev bûn sê megabytes (wey!).

Bê guman, ew neçar bûn ku rêgezek çêbikin ku "dema ku pergala xebitandinê dest pê dike, divê ew bikaribe dîskek duyemîn li /usr-ê vebike, ji ber vê yekê bernameyên mîna mountê li ser dîska duyemîn li /usr nexin an na pirsgirêka mirîşk û hêkan." Ew qas hêsan e. Û ew di Unix V6 de 35 sal berê bû.

Parçebûna /bin û /usr/bin (û hemû derhênerên bi vî rengî) mîrateya wan bûyeran e, hûrguliyek pêkanînê ya ji salên 70-an e ku bi dehsalan ji hêla burokratan ve hatî kopî kirin. Wan qet pirs nekirin çimawan tenê kir. Beriya ku Linux were afirandin jî, ji ber çend sedeman, ev dabeşbûn dev ji wateya xwe berda:

  1. Di dema bootkirinê de, initrd an initramfs tê bikar anîn, ku pirsgirêkên wekî "Em berî wê pelê hewce ne." Bi vî awayî, em hene jixwe heye pergala pelê ya demkî ya ku ji bo barkirina her tiştê din tê bikar anîn.
  2. Pirtûkxaneyên hevpar (yên ku ji hêla xortên Berkley ve li Unix hatine zêdekirin) nahêlin hûn naveroka /lib û /usr/lib serbixwe biguherînin. Divê ev her du beş li hev bikin an na ew ê nexebitin. Ev yek di sala 1974-an de pêk nehat, ji ber ku wan wê demê ji ber girêdana statîk hinek serbixwebûn.
  3. Dîskên hişk ên erzan dora 100-an de astengiya 1990 megabyte şikand, û di heman demê de, nermalava veguheztina dabeşkirinê xuya bû (partition magic 3.0 di 1997-an de derket).

Bê guman, ji ber ku parçebûnek heye, hin kes bi rêgezên ku wê rewa dikin derketine. Mînakî, dabeşkirina root ji bo her cûre taybetmendiyên giştî yên OS-ê hewce ye, û hûn hewce ne ku pelên xweyên herêmî têxin nav / usr. An jî têxin / tiştê ku AT&T belav dike, û di /usr de çi belavkirina we, IBM AIX, an Dec Ultrix, an SGI Irix lê zêde kiriye, û /usr/local pelên taybetî yên pergala we dihewîne. Û dûv re kesek biryar da ku /usr/local ne cîhê rast e ku nermalava nû saz bike, ji ber vê yekê werin em /opt zêde bikin! Ger /opt/local jî xuya bibe ez ê şaş nebim ...

Bê guman, di nav 30 salan de, ji ber vê veqetandinê, her cûre qaîdeyên balkêş ên belavkirinê hatine û çûne. Mînakî, "/tmp di rebootê de tê paqij kirin, lê /usr/tmp na." (Û di Ubuntu de di prensîbê de /usr/tmp tune ye, û di Gentoo de /usr/tmp girêdanek sembolîk e ji /var/tmp re, ku naha di bin vê qaîdeyê de ye, û di rebootkirinê de nayê paqij kirin. Erê, ev berî her tiştî bû Di heman demê de diqewime ku root FS tenê-xwendin e, û hingê hûn ne hewce ne ku tiştek ji /usr re jî binivîsin, lê hûn hewce ne ku li /var binivîsin. bi piranî nikare bê nivîsandin ji bilî /etc, ya ku carinan dihat ceribandin ku were veguheztin /var ...)

Burokratên mîna Weqfa Linux (ku sal berê di dema berfirehbûna xwe de Koma Standardên Azad daqurtand) kêfxweş in ku van qaîdeyan belge û tevlihev dikin bêyî ku qet hewl bidin ku fêm bikin ka çima ew li wir bûn. Tiştê ku ew pê nizanin ev e ku Ken û Dennis tenê beşek OS-ê bar kirine pelrêça mala xwe ji ber ku dîska RK05 li ser PDP-11 pir piçûk bû.

Ez pir pê bawer im ku busybox tenê pelan bi heman awayê ku ew di dîrokê de pêşketiye datîne. Heya niha tu sedemek rast a vê yekê tune ye. Bi kesane, ez tenê /bin, /sbin û /lib di /usr de bi pelrêçiyên wekhev ve girêdidim. Beriya her tiştî, mirovên ku bi nermalava pêvekirî re dixebitin hewl didin ku fêm bikin û hêsan bikin ...

Source: www.habr.com

Add a comment