Forskjellen mellom bin, sbin, usr/bin, usr/sbin

30. november 2010 skrev David Collier:

Jeg la merke til at i busybox er lenkene delt opp i disse fire katalogene.
Finnes det noen enkle regler for Ă„ bestemme hvilken katalog hvilke lenker bĂžr ligge i...
For eksempel ligger kill i /bin, mens killall ligger i /usr/bin... Jeg ser ingen logikk i slik inndeling.

Dere vet kanskje at Ken Thompson og Dennis Ritchie lagde Unix pÄ PDP-7 i 1969. Rundt 1971 oppgraderte de til PDP-11 med et par RK05-disker (hver pÄ 1,5 megabyte).

Da operativsystemet vokste og ikke lenger fikk plass pĂ„ den fĂžrste disken (hvor rotfilsystemet var plassert), flyttet de deler av det til den andre disken, hvor de hadde hjemmekatalogene (derfor ble monteringspunktet kalt /usr — fra ordet user). De dupliserte alle nĂždvendige kataloger for OS ( /bin, /sbin, /lib, /tmp
) der og lagret filer pĂ„ den nye disken, fordi det ikke var mer plass pĂ„ den gamle. SĂ„ fikk de en tredje disk, de monterte den i katalogen /home og flyttet hjemmekatalogene til brukerne dit, slik at operativsystemet kunne ta all plassen som var igjen pĂ„ de to diskene, som var hele tre megabyte (wow!).

SelvfÞlgelig mÄtte de innfÞre en regel om at "nÄr operativsystemet lastes, mÄ det kunne montere den andre disken i katalogen /usr, sÄ det er ikke lurt Ä legge programmer som mount pÄ den andre disken i /usr, eller vi fÄr problemet med hÞna og egget". SÄ enkelt var det. Og dette gjaldt Unix V6 for 35 Är siden.

Inndelingen av /bin og /usr/bin (og alle lignende kataloger) er et resultat av disse hendelsene, en implementeringsdetalj fra 70-tallet som har blitt kopiert av byrÄkrater i flere tiÄr. De stilte aldri spÞrsmÄlet hvorfor, de bare gjorde som de alltid hadde gjort. Denne inndelingen mistet mening fÞr Linux ble laget, av flere grunner:

  1. Ved oppstart brukes initrd eller initramfs, som hÄndterer problemer som "denne filen trenger vi fÞr den andre". Dermed har vi er allerede et midlertidig filsystem som brukes for Ä laste inn alt annet.
  2. Delte biblioteker (som ble lagt til i Unix av gutta fra Berkley) tillater deg ikke Ä endre innholdet i /lib og /usr/lib uavhengig. Disse to delene mÄ samsvare med hverandre, ellers vil de ikke fungere. Dette skjedde ikke i 1974, da de hadde en viss uavhengighet pÄ grunn av statisk linking.
  3. Billige harddisker overkom barrierene pÄ 100 megabyte en gang rundt 1990, og omtrent samtidig kom programmer for Ä endre stÞrrelse pÄ partisjoner (partition magic 3.0 ble utgitt i 1997).

SelvfÞlgelig, siden det er deling, har noen mennesker funnet opp regler som rettferdiggjÞr det. For eksempel, rotpartisjonen er nÞdvendig for Ä lagre diverse felles OS-greier, mens /usr skal inneholde lokale filer. Eller i / er det som distribueres av AT&T, mens i /usr er det som distribusjonen din, IBM AIX, eller Dec Ultrix, eller SGI Irix, har lagt til, mens /usr/local inneholder filer spesifikke for ditt system. Og sÄ bestemte noen at /usr/local ikke var et passende sted Ä installere ny programvare, sÄ la oss legge til /opt! Jeg ville ikke bli overrasket hvis det ogsÄ kommer /opt/local...

SelvfÞlgelig, gjennom 30 Är har slike delinger fÞrt til at mange interessante regler spesifik for enkelte distribusjoner har kommet og gÄtt. For eksempel, «/tmp blir tÞmt ved omstart, men /usr/tmp gjÞr ikke det». (Og i Ubuntu finnes ikke /usr/tmp i det hele tatt, mens i Gentoo er /usr/tmp en symbolsk lenke til /var/tmp, som nÄ fÞlger den regelen, og den tÞmmes ikke ved omstart. Ja, dette var alt fÞr tmpfs. Det hender ogsÄ at rotfilsystemet kun er tilgjengelig for lesing, og da skal ingenting skrives i /usr, men skrives i /var. Eller i / primÊrt kan man ikke skrive, bortsett fra det som er i /etc, som noen ganger har blitt forsÞkt flyttet til /var...)

Bureaukrater som Linux Foundation (som absorberte Free Standards Group under ekspansjonen for mange Är siden) dokumenterer og kompliserer gjerne disse reglene, uten Ä engang prÞve Ä forstÄ hvorfor de oppsto. De aner ikke at Ken og Dennis bare flyttet deler av OS til sin hjemmebane, fordi disken RK05 pÄ PDP-11 var for liten.

Jeg er nesten sikker pÄ at busybox bare plasserer filer slik det har blitt gjort historisk. Det finnes ingen reell grunn til Ä gjÞre det pÄ denne mÄten fortsatt. Personlig lager jeg bare /bin, /sbin og /lib som linker til tilsvarende kataloger i /usr. Folk som jobber med innebygd programvare prÞver jo Ä forstÄ og forenkle...

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster