Diferència entre bin, sbin, usr/bin, usr/sbin

El 30 de novembre de 2010, David Collier va escriure:

Em vaig adonar que a busybox els enllaços es divideixen en aquests quatre directoris.
Hi ha alguna regla senzilla per determinar en quin directori quin dels enllaços hauria de trobar-se...
Per exemple, kill està a /bin i killall està a /usr/bin... No veig cap lògica en aquesta divisió.

Segurament sabeu que Ken Thompson i Dennis Ritchie van crear Unix al PDP-7 el 1969. Així, cap al 1971, es van actualitzar a un PDP-11 amb un parell de discos RK05 (1,5 megabytes cadascun).

Quan el sistema operatiu va créixer i ja no encaixava al primer disc (on es trobava l'arrel FS), van traslladar part al segon, on es trobaven els directoris d'inici (per tant, el punt de muntatge s'anomenava /usr - de la paraula usuari). Allà van duplicar tots els directoris del sistema operatiu necessaris (/bin, /sbin, /lib, /tmp...) i van posar els fitxers en un disc nou, perquè l'antic es va quedar sense espai. Després van tenir un tercer disc, el van muntar al directori /home i van traslladar-hi els directoris d'inici dels usuaris perquè el sistema operatiu pogués ocupar tot l'espai restant en dos discs, i aquests eren tres megabytes (uau!).

Per descomptat, havien de fer una regla que "quan el sistema operatiu arrenqui, ha de poder muntar un segon disc a /usr, així que no posis programes com mount al segon disc a /usr o tindreu un problema de gallina i ou". És així de senzill. I això va ser a Unix V6 fa 35 anys.

La divisió de /bin i /usr/bin (i tots aquests directoris) és un llegat d'aquests esdeveniments, un detall d'implementació dels anys 70 que ha estat copiat pels buròcrates des de fa dècades. Mai van fer la pregunta per quèacaben de fer-ho. Aquesta divisió va deixar de tenir sentit fins i tot abans que es creés Linux, per diverses raons:

  1. En arrencar, s'utilitza un initrd o initramfs, que s'encarrega de problemes com "necessitem aquest fitxer abans que aquest". Així, tenim Ja ho teniu sistema de fitxers temporal que s'utilitza per carregar tota la resta.
  2. Les biblioteques compartides (que van ser agregades a Unix pels nois de Berkley) no us permeten canviar el contingut de /lib i /usr/lib de manera independent. Aquestes dues parts han de coincidir o no funcionaran. Això no va passar l'any 1974 perquè aleshores tenien certa independència a causa de la vinculació estàtica.
  3. Els discs durs barats van trencar la barrera dels 100 megabytes cap a l'any 1990 i, al mateix temps, va aparèixer el programari de redimensionament de particions (partition magic 3.0 va sortir el 1997).

Per descomptat, com que hi ha una divisió, hi ha qui ha creat normes que ho justifiquen. Igual que, la partició arrel és necessària per a tot tipus de funcions generals del sistema operatiu, i heu de posar els vostres fitxers locals a / usr. O introduïu / què distribueix AT&T i a /usr què ha afegit la vostra distribució, IBM AIX, Dec Ultrix o SGI Irix, i /usr/local conté fitxers específics del vostre sistema. I llavors algú va decidir que /usr/local no era el lloc adequat per instal·lar programari nou, així que afegim /opt! No em sorprendrà si també apareix /opt/local...

Per descomptat, al llarg de 30 anys, a causa d'aquesta separació, han aparegut i desaparegut tota mena de regles específiques de distribució interessants. Per exemple, "/tmp s'esborra en reiniciar, però /usr/tmp no". (I a Ubuntu no hi ha /usr/tmp en principi, i a Gentoo /usr/tmp hi ha un enllaç simbòlic a /var/tmp, que ara està subjecte a aquesta regla, i no s'esborra al reiniciar. Sí, això era tot abans. També passa que l'arrel FS és només de lectura, i aleshores tampoc cal escriure res a /usr, sinó que cal escriure a /var. bàsicament no es pot escriure excepte a /etc, que de vegades es va intentar moure a /var...)

Buròcrates com la Fundació Linux (que va engolir el Free Standards Group durant la seva expansió fa anys) estan encantats de documentar i complicar aquestes regles sense intentar esbrinar mai per què hi eren. El que no s'adonen és que Ken i Dennis acaben de traslladar part del sistema operatiu al seu directori d'inici perquè el disc RK05 del PDP-11 era massa petit.

Estic bastant segur que busybox només posa els fitxers de la mateixa manera que s'ha desenvolupat històricament. No hi ha cap motiu real per fer-ho fins ara. Personalment, només enllaço /bin, /sbin i /lib a directoris similars a /usr. Després de tot, les persones que treballen amb programari incrustat intenten entendre i simplificar...

Font: www.habr.com

Afegeix comentari