Ferskil tusken bin, sbin, usr/bin, usr/sbin

Op 30 novimber 2010 skreau David Collier:

Ik fernaam dat yn busybox de keppelings binne ferdield yn dizze fjouwer mappen.
Is d'r wat ienfâldige regel om te bepalen yn hokker map hokker fan 'e keppelings moatte lizze ...
Bygelyks, kill is yn /bin, en killall is yn /usr/bin ... Ik sjoch gjin logika yn dizze divyzje.

Jo witte wierskynlik dat Ken Thompson en Dennis Ritchie Unix makken op 'e PDP-7 yn 1969. Dat, om 1971 hinne, opwurdearren se nei in PDP-11 mei in pear RK05-skiven (elk 1,5 megabyte).

Doe't it bestjoeringssysteem groeide en net mear paste op 'e earste skiif (dêr't de root FS op siet), ferhuze se diel nei de twadde, wêr't de thúsmappen sieten (dêrom waard it berchpunt /usr neamd - fan it wurd brûker). Se duplisearre dêr alle nedige OS-mappen (/bin, /sbin, /lib, /tmp ...) en sette de bestannen op in nije skiif, om't de âlde romte rûn. Doe hiene se in tredde skiif, se montearden dy yn 'e /home-map en ferpleatsen de thúsmappen fan 'e brûkers dêrhinne, sadat it OS alle oerbleaune romte op twa skiven koe nimme, en dit wiene safolle as trije megabytes (wow!).

Fansels moasten se in regel meitsje dat "as it bestjoeringssysteem opstart, moat it in twadde skiif yn /usr kinne mount, dus set gjin programma's lykas mount op 'e twadde skiif yn /usr of jo hawwe in hin-en-aaiprobleem." Sa ienfâldich is it. En dat wie yn Unix V6 35 jier lyn.

De splitsing fan /bin en /usr/bin (en al sokke mappen) is in neilittenskip fan dy eveneminten, in ymplemintaasjedetail út 'e jierren '70 dat no al tsientallen jierren troch burokraten kopiearre is. Se hawwe nea de fraach steld wêromse diene it gewoan. Dizze divyzje hold op mei sin sels foardat Linux waard makke, om ferskate redenen:

  1. By it opstarten wurdt in initrd of initramfs brûkt, dy't soarget foar problemen lykas "wy hawwe dizze triem foar dy nedich." Sa hawwe wy hat al tydlik bestânsysteem dat wurdt brûkt om al it oare te laden.
  2. Dielde bibleteken (dy't waarden tafoege oan Unix troch de jongens by Berkley) tastean jo net te feroarjen de ynhâld fan /lib en /usr/lib ûnôfhinklik. Dizze twa dielen moatte oerienkomme, oars sille se net wurkje. Dit barde net yn 1974, om't se doe wat ûnôfhinklikheid hienen troch statyske ferbining.
  3. Goedkeape hurde skiven bruts de 100 megabyte barriêre om 1990 hinne, en om deselde tiid ferskynde software foar it feroarjen fan partition (partition magic 3.0 kaam út yn 1997).

Fansels, om't der in ferdieling is, binne guon minsken mei regels kommen dy't it rjochtfeardigje. Lykas, de root-partysje is nedich foar alle soarten algemiene OS-funksjes, en jo moatte jo lokale bestannen yn / usr sette. Of set yn / wat AT&T distribuearret, en yn /usr wat jo distribúsje, IBM AIX, of Dec Ultrix, of SGI Irix tafoege, en /usr/local befettet triemmen spesifyk foar jo systeem. En doe besleat immen dat /usr/local net it goede plak wie om nije software te ynstallearjen, dus litte wy /opt tafoegje! Ik sil net fernuverje as /opt/local ek ferskynt ...

Fansels binne der yn de rin fan 30 jier, troch dizze skieding, allerhanne nijsgjirrige distribúsje-spesifike regels kommen en gien. Bygelyks, "/tmp wurdt wiske by herstart, mar /usr/tmp is net." (En yn Ubuntu is d'r yn prinsipe gjin /usr/tmp, en yn Gentoo is /usr/tmp in symboalyske keppeling nei /var/tmp, dy't no ûnderwurpen is oan dy regel, en it wurdt net wiske by herstarten. Ja, dit wie alles earder It bart ek dat de root FS allinich lêzen is, en dan hoege jo ek neat te skriuwen nei /usr, mar jo moatte skriuwe nei /var. yn prinsipe kin net skreaun wurde útsein yn /etc, dat soms besocht waard te ferpleatsen nei /var ...)

Burokraten lykas de Linux Foundation (dy't de Free Standards Group opslokte tidens syn útwreiding jierren lyn) binne bliid om dizze regels te dokumintearjen en te komplisearje sûnder oait te besykjen út te finen wêrom't se der wiene. Wat se net realisearje is dat Ken en Dennis krekt in diel fan it OS ferpleatst hawwe nei har thúsmap, om't de RK05-skiif op 'e PDP-11 te lyts wie.

Ik bin der wis fan dat busybox de bestannen gewoan op deselde manier set as it histoarysk ûntwikkele is. D'r is oant no ta gjin echte reden om dat te dwaan. Persoanlik meitsje ik gewoan / bin, / sbin en / lib keppeling nei ferlykbere mappen yn / usr. Immers, minsken dy't wurkje mei ynbêde software besykje te begripen en te ferienfâldigjen ...

Boarne: www.habr.com

Add a comment