Erinevus bin, sbin, usr/bin, usr/sbin vahel

30. novembril 2010 kirjutas David Collier:

Märkasin, et busyboxis on lingid jagatud nendesse nelja kataloogi.
Kas on mõni lihtne reegel, et määrata, millises kataloogis, milline link peaks asuma?
Näiteks kill on /bin ja killall on /usr/bin... Ma ei näe selles jaotuses mingit loogikat.

Tõenäoliselt teate, et Ken Thompson ja Dennis Ritchie lõid 7. aastal PDP-1969 peal Unixi. Nii läksid nad umbes 1971. aastal üle PDP-11-le koos paari RK05 kettaga (igaüks 1,5 megabaiti).

Kui operatsioonisüsteem kasvas ja ei mahtunud enam esimesele kettale (millel asus juur-FS), kolisid nad osa teisele, kus asusid kodukataloogid (seetõttu nimetati ühenduspunkti /usr - sõnast kasutaja). Nad dubleerisid sinna kõik vajalikud OS-i kataloogid (/bin, /sbin, /lib, /tmp ...) ja panid failid uuele kettale, kuna vanal sai ruum otsa. Siis oli neil kolmas ketas, nad paigaldasid selle kataloogi /home ja teisaldasid kasutajate kodukataloogid sinna, et OS saaks kogu ülejäänud kahe ketta ruumi enda alla võtta ja need olid kolm megabaiti (vau!).

Muidugi pidid nad kehtestama reegli, et "kui operatsioonisüsteem käivitub, peab see suutma ühendada teise ketta kausta /usr, nii et ärge pange selliseid programme nagu mount teisele kettale kausta /usr, muidu saate kana ja muna probleem." Nii lihtne see ongi. Ja see oli Unix V6-s 35 aastat tagasi.

Kataloogide /bin ja /usr/bin (ja kõigi selliste kataloogide) poolitamine on nende sündmuste pärand, 70ndate juurutamise detail, mida bürokraadid on juba aastakümneid kopeerinud. Nad ei esitanud kunagi seda küsimust miksnad lihtsalt tegid seda. Sellel jaotusel ei olnud enam mõtet isegi enne Linuxi loomist mitmel põhjusel:

  1. Käivitamisel kasutatakse initrd-i või initramfs-i, mis hoolitseb selliste probleemide eest nagu "me vajame seda faili enne seda." Seega on meil juba on ajutine failisüsteem, mida kasutatakse kõige muu laadimiseks.
  2. Jagatud teegid (mille lisasid Unixile Berkley poisid) ei võimalda teil /lib ja /usr/lib sisu iseseisvalt muuta. Need kaks osa peavad sobima, muidu nad ei tööta. 1974. aastal seda ei juhtunud, sest neil oli toona staatilise linkimise tõttu teatav iseseisvus.
  3. Odavad kõvakettad murdsid 100 megabaidise barjääri umbes 1990. aastal ja umbes samal ajal ilmus partitsioonide suuruse muutmise tarkvara (partition Magic 3.0 tuli välja 1997. aastal).

Muidugi, kuna jagunemine on olemas, on mõned inimesed välja mõelnud reeglid, mis seda õigustavad. Juursektsiooni on vaja igasuguste üldiste OS-i funktsioonide jaoks ja peate oma kohalikud failid sisestama kausta / usr. Või sisestage / mida AT&T levitab ja /usr-i, mida teie distributsioon, IBM AIX või Dec Ultrix või SGI Irix on lisanud, ja /usr/local sisaldab teie süsteemile omaseid faile. Ja siis otsustas keegi, et /usr/local pole uue tarkvara installimiseks õige koht, nii et lisame /opt! Ma ei imesta, kui kuvatakse ka /opt/local ...

Muidugi on 30 aasta jooksul selle eraldatuse tõttu tulnud ja läinud igasuguseid huvitavaid levispetsiifilisi reegleid. Näiteks "/tmp kustutatakse taaskäivitamisel, kuid /usr/tmp mitte." (Ja Ubuntus puudub põhimõtteliselt /usr/tmp ja Gentoo puhul on /usr/tmp sümboolne link /var/tmp-le, millele nüüd kehtib see reegel ja seda ei tühjendata taaskäivitamisel. Jah, see oli kõik enne Juhtub ka seda, et juur-FS on kirjutuskaitstud ja siis ei pea ka /usr-i midagi kirjutama, vaid peate kirjutama kausta /var. peamiselt ei saa kirjutada, välja arvatud /etc, mida mõnikord prooviti teisaldada kausta /var ...)

Bürokraadid nagu Linuxi sihtasutus (mis neelas vabade standardite grupi oma laienemise ajal aastaid tagasi) dokumenteerivad ja muudavad need reeglid keeruliseks, püüdmata kunagi aru saada, miks need seal olid. Nad ei saa aru, et Ken ja Dennis teisaldasid osa OS-ist just oma kodukataloogi, kuna PDP-05 RK11 ketas oli liiga väike.

Olen üsna kindel, et busybox lihtsalt paigutab failid samamoodi, nagu see on ajalooliselt arenenud. Seni pole selleks tegelikku põhjust. Isiklikult teen lihtsalt /bin, /sbin ja /lib lingi sarnastele kataloogidele /usr-s. Lõppude lõpuks püüavad manustatud tarkvaraga töötavad inimesed mõista ja lihtsustada ...

Allikas: www.habr.com

Lisa kommentaar