Diferenco inter bin, sbin, usr/bin, usr/sbin

La 30-an de novembro 2010, David Collier skribis:

Mi rimarkis, ke en busybox la ligiloj estas dividitaj en ĉi tiujn kvar dosierujojn.
Ĉu ekzistas iu simpla regulo por determini en kiu dosierujo kiu el la ligiloj devas kuŝi...
Ekzemple, kill estas en /bin, kaj killall estas en /usr/bin... Mi vidas neniun logikon en ĉi tiu divido.

Vi verŝajne scias, ke Ken Thompson kaj Dennis Ritchie kreis Unikson sur la PDP-7 en 1969. Do, ĉirkaŭ 1971, ili ĝisdatigis al PDP-11 kun paro da RK05-diskoj (po 1,5 megabajtoj).

Kiam la operaciumo kreskis kaj ne plu konvenis sur la unua disko (sur kiu troviĝis la radiko FS), ili movis parton al la dua, kie troviĝis la hejmaj dosierujoj (tial, la munta punkto estis nomita / usr - de la vorto. uzanto). Ili duobligis ĉiujn necesajn OS-dosierujojn tie (/bin, /sbin, /lib, /tmp ...) kaj metis la dosierojn sur novan diskon, ĉar la malnova mankis spaco. Tiam ili havis trian diskon, ili muntis ĝin en la /hejma dosierujo kaj movis la hejmajn dosierujojn de la uzantoj tien, por ke la OS povu preni la tutan restantan spacon sur du diskoj, kaj ĉi tiuj estis ĝis tri megabajtoj (Ŭaŭ!).

Kompreneble, ili devis fari regulon, ke "kiam la operaciumo ekfunkciigas, ĝi devas povi munti duan diskon en /usr, do ne metu programojn kiel mount sur la duan diskon en /usr aŭ vi havos problemo de kokido kaj ovo." Estas tiel simpla. Kaj tio estis en Unikso V6 antaŭ 35 jaroj.

La disigo de /bin kaj /usr/bin (kaj ĉiuj tiaj dosierujoj) estas heredaĵo de tiuj eventoj, efektiviga detalo el la 70-aj jaroj, kiu estis kopiita de burokratoj dum jardekoj nun. Ili neniam faris la demandon kialili simple faris ĝin. Ĉi tiu dividado ĉesis havi sencon eĉ antaŭ ol Linukso estis kreita, pro pluraj kialoj:

  1. Dum ekŝargo, oni uzas initrd aŭ initramfs, kiuj zorgas pri problemoj kiel "ni bezonas ĉi tiun dosieron antaŭ tiu." Tiel, ni havas jam havas provizora dosiersistemo, kiu estas uzata por ŝargi ĉion alian.
  2. Komunaj bibliotekoj (kiuj estis aldonitaj al Unikso de la uloj ĉe Berkley) ne permesas al vi ŝanĝi la enhavon de /lib kaj /usr/lib sendepende. Ĉi tiuj du partoj devas kongrui aŭ ili ne funkcios. Tio ne okazis en 1974 ĉar ili havis iom da sendependeco tiam pro senmova ligo.
  3. Malmultekostaj malmolaj diskoj rompis la 100 megabajtan baron ĉirkaŭ 1990, kaj ĉirkaŭ la sama tempo aperis programaro por regrandigo de sekcioj (dispartiga magio 3.0 aperis en 1997).

Kompreneble, ĉar ekzistas divido, kelkaj homoj elpensis regulojn, kiuj pravigas ĝin. Kiel, la radika sekcio estas bezonata por ĉiaj ĝeneralaj OS-funkcioj, kaj vi devas meti viajn lokajn dosierojn en / usr. Aŭ enigu / kion AT&T distribuas, kaj en /usr kion via distribuo, IBM AIX, aŭ Dec Ultrix, aŭ SGI Irix aldonis, kaj /usr/local enhavas dosierojn specifajn por via sistemo. Kaj tiam iu decidis /usr/local ne estas la ĝusta loko por instali novan programaron, do ni aldonu /opt! Mi ne miros, se ankaŭ aperas /opt/local...

Kompreneble, dum 30 jaroj, pro ĉi tiu disiĝo, ĉiaj interesaj distribu-specifaj reguloj venis kaj malaperis. Ekzemple, "/tmp estas forigita dum rekomenco, sed /usr/tmp ne." (Kaj en Ubuntu ne ekzistas /usr/tmp principe, kaj en Gentoo /usr/tmp estas simbola ligilo al /var/tmp, kiu nun estas submetata al tiu regulo, kaj ĝi ne estas forigita ĉe rekomenco. Jes, ĉi tio estis ĉio antaŭe Okazas ankaŭ, ke la radiko FS estas nurlegebla, kaj tiam vi ankaŭ ne bezonas skribi ion al /usr, sed vi devas skribi al /var. esence ne povas esti skribita krom en /etc, kiu foje estis provita esti movita al /var ...)

Burokratoj kiel la Linukso-Fondaĵo (kiu englutis la Liberajn Normojn-Grupon dum sia vastiĝo antaŭ jaroj) feliĉas dokumenti kaj kompliki ĉi tiujn regulojn sen iam provi eltrovi kial ili estis tie. Kion ili ne rimarkas, estas ke Ken kaj Dennis ĵus movis parton de la OS al sia hejma dosierujo ĉar la RK05-disko sur la PDP-11 estis tro malgranda.

Mi estas sufiĉe certa, ke busybox simple metas dosierojn en la sama maniero kiel ĝi faris historie. Ne estas vera kialo fari tion ĝis nun. Persone, mi nur faras /bin, /sbin kaj /lib ligi al similaj dosierujoj en /usr. Post ĉio, homoj, kiuj laboras kun enigita programaro, provas kompreni kaj simpligi ...

fonto: www.habr.com

Aldoni komenton