Skillnaden mellan bin, sbin, usr/bin, usr/sbin

Den 30 november 2010 skrev David Collier:

Jag noterade att lÀnkarna i busybox Àr spridda över dessa fyra kataloger.
Finns det nĂ„gon enkel regel för att avgöra vilken katalog som en lĂ€nk bör ligga i 

Till exempel ligger kill i /bin, medan killall ligger i /usr/bin 
 Jag ser ingen logik i sÄdan uppdelning.

Du kÀnner sÀkert till att Ken Thompson och Dennis Ritchie skapade Unix pÄ PDP-7 1969. SÄ omkring 1971 uppgraderade de till PDP-11 med ett par diskar RK05 (1,5 megabyte vardera).

NĂ€r operativsystemet vĂ€xte och inte fick plats pĂ„ den första disken (dĂ€r rotfilsystemet lĂ„g), flyttade de en del till den andra, dĂ€r anvĂ€ndardirektiven lĂ„g (dĂ€rav monteringspunkten kallad /usr — frĂ„n ordet user). De duplicerade alla nödvĂ€ndiga OS-kataloger dĂ€r (/bin, /sbin, /lib, /tmp 
) och lagrade filer pĂ„ den nya disken, eftersom den gamla var full. Sedan fick de en tredje disk, som de monterade i katalogen /home och flyttade dit anvĂ€ndarnas hemkataloger, sĂ„ att OS kunde anvĂ€nda allt övrigt utrymme pĂ„ de tvĂ„ diskarna, vilket var hela tre megabyte (wow!).

SjÀlvklart var de tvungna att införa en regel om att "nÀr operativsystemet startar, mÄste det kunna montera den andra disken i katalogen /usr, sÄ lÀgg inte program som mount pÄ den andra disken i /usr, annars fÄr vi problemet med hönan och Àgget". SÄ enkelt var det. Och detta gÀllde Unix V6 för 35 Är sedan.

Uppdelningen av /bin och /usr/bin (och alla liknande kataloger) Àr en följd av dessa hÀndelser, en implementeringsdetalj frÄn 70-talet som fortfarande, i flera decennier, har kopierats av byrÄkrater. De stÀllde aldrig frÄgan varför, de gjorde helt enkelt sÄ. Denna uppdelning blev meningslös lÄngt innan Linux skapades av flera skÀl:

  1. Vid bootning anvÀnds initrd eller initramfs, vilket tar hand om problem som "denna fil behöver vi tidigare Àn den andra". SÄledes har vi sÄ med hjÀlp av denna samling certifikat kan en kedja byggas och webbplatsen autentiseras. ett temporÀrt filsystem som anvÀnds för att ladda allt annat.
  2. Delade bibliotek (som lades till i Unix av grabbarna frÄn Berkley) tillÄter dig inte att oberoende Àndra innehÄllet i /lib och /usr/lib. Dessa tvÄ delar mÄste matcha varandra, annars fungerar de inte. Detta hÀnde inte 1974, eftersom de dÄ hade viss oberoende pÄ grund av statisk lÀnkning.
  3. Billiga hÄrddiskar övervann barriÀren pÄ 100 megabyte nÄgon gÄng runt 1990, och ungefÀr vid samma tidpunkt dök program för att Àndra partitioner upp (partition magic 3.0 slÀpptes 1997).

SjÀlvklart, eftersom det finns en uppdelning, har vissa personer kommit pÄ regler som rÀttfÀrdigar den. Till exempel, rotpartitionen behövs för allmÀnna operativsystemfiler, medan lokala filer ska lÀggas i /usr. Eller sÄ lÀgger man det som distribueras av AT&T i /, och det som din distribution, IBM AIX, eller Dec Ultrix, eller SGI Irix har lagt till i /usr, medan filer som Àr specifika för ditt system ligger i /usr/local. Och sedan bestÀmde nÄgon att /usr/local inte var en lÀmplig plats att installera ny mjukvara, sÄ lÄt oss lÀgga till /opt! Jag skulle inte bli förvÄnad om det ocksÄ dyker upp /opt/local...

SjÀlvklart, under 30 Är har pÄ grund av denna uppdelning intressanta distributionsspecifika regler kommit och gÄtt. Till exempel, "tmp rensas vid omstart, men /usr/tmp gör det inte". (Och i Ubuntu finns inte /usr/tmp överhuvudtaget, medan i Gentoo Àr /usr/tmp en symbolisk lÀnk till /var/tmp, som nu följer den regeln, och den rensas inte vid omstart. Ja, detta hÀnde innan tmpfs. Det kan ocksÄ hÀnda att roten Àr skrivskyddad, och dÄ behöver man inte skriva nÄgot i /usr, utan i /var. Eller i / just det faktum kan man inte skriva, förutom i /etc, som ibland har försökt flyttas till /var...)

Bureaukrater som Linux Foundation (som slukade Free Standards Group under expansionen för nÄgra Är sedan) dokumenterar och komplicerar gÀrna dessa regler, utan att ens försöka förstÄ varför de uppstod. De inser inte att Ken och Dennis helt enkelt flyttade delar av operativsystemet till sin hemkatalog, eftersom RK05-disken pÄ PDP-11 var för liten.

Jag Àr nÀstan sÀker pÄ att busybox helt enkelt placerar filer pÄ samma sÀtt som det historiskt har gjorts. Det finns ingen verklig anledning att göra det annorlunda Àn sÄ hÀr. Personligen gör jag bara /bin, /sbin och /lib till lÀnkar till motsvarande kataloger i /usr. MÀnniskor som arbetar med inbyggd mjukvara försöker ÀndÄ förstÄ och förenkla...

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster