Diferența dintre bin, sbin, usr/bin, usr/sbin

Pe 30 noiembrie 2010, David Collier a scris:

Am observat că în busybox link-urile sunt împărțite în aceste patru directoare.
Există o regulă simplă pentru a determina în ce director care dintre legături ar trebui să se afle...
De exemplu, kill este în /bin și killall este în /usr/bin... Nu văd nicio logică în această diviziune.

Probabil știți că Ken Thompson și Dennis Ritchie au creat Unix pe PDP-7 în 1969. Deci, în jurul anului 1971, au trecut la un PDP-11 cu o pereche de discuri RK05 (1,5 megaocteți fiecare).

Când sistemul de operare a crescut și nu mai încăpea pe primul disc (pe care se afla rădăcina FS), au mutat o parte în al doilea, unde se aflau directoarele de acasă (prin urmare, punctul de montare a fost numit / usr - din cuvânt utilizator). Au duplicat acolo toate directoarele necesare ale sistemului de operare (/bin, /sbin, /lib, /tmp ...) și au pus fișierele pe un disc nou, deoarece cel vechi a rămas fără spațiu. Apoi au avut un al treilea disc, l-au montat în directorul /home și au mutat acolo directoarele de acasă ale utilizatorilor, astfel încât sistemul de operare să poată ocupa tot spațiul rămas pe două discuri, iar acestea au fost până la trei megaocteți (Wow!).

Desigur, au trebuit să facă o regulă că „când sistemul de operare pornește, trebuie să poată monta un al doilea disc în /usr, așa că nu puneți programe precum mount pe al doilea disc în /usr sau veți avea o problemă cu găina și ouă”. Este atat de simplu. Și asta a fost în Unix V6 acum 35 de ani.

Împărțirea /bin și /usr/bin (și toate astfel de directoare) este o moștenire a acelor evenimente, un detaliu de implementare din anii 70 care a fost copiat de birocrați de zeci de ani. Nu au pus niciodată întrebarea de ce, pur și simplu au făcut-o. Această diviziune a încetat să mai aibă sens chiar înainte Linux a fost creată din mai multe motive:

  1. La pornire, se folosește un initrd sau initramfs, care se ocupă de probleme precum „avem nevoie de acest fișier înainte de acela”. Astfel, avem deja au sistem de fișiere temporar care este folosit pentru a încărca orice altceva.
  2. Bibliotecile partajate (care au fost adăugate la Unix de către cei de la Berkley) nu vă permit să schimbați independent conținutul /lib și /usr/lib. Aceste două părți trebuie să se potrivească sau nu vor funcționa. Acest lucru nu s-a întâmplat în 1974, deoarece aveau o anumită independență pe atunci datorită legăturilor statice.
  3. Hard disk-urile ieftine au spart bariera de 100 de megaocteți în jurul anului 1990 și, cam în același timp, a apărut software-ul de redimensionare a partițiilor (partition magic 3.0 a apărut în 1997).

Desigur, din moment ce există o diviziune, unii oameni au venit cu reguli care o justifică. De exemplu, partiția rădăcină este necesară pentru tot felul de caracteristici generale ale sistemului de operare și trebuie să puneți fișierele locale în / usr. Sau introduceți în / ce distribuie AT&T și în /usr ce a adăugat distribuția dvs., IBM AIX sau Dec Ultrix sau SGI Irix, iar /usr/local conține fișiere specifice sistemului dvs. Și apoi cineva a decis că /usr/local nu este locul potrivit pentru a instala software-ul nou, așa că să adăugăm /opt! Nu voi fi surprins dacă apare și /opt/local...

Desigur, în ultimii 30 de ani, această diviziune a dus la apariția și dispariția tot felul de reguli interesante, specifice distribuțiilor. De exemplu, „/tmp este șters la repornire, dar /usr/tmp nu.” (Și în Ubuntu În principiu, /usr/tmp nu există, iar în Gentoo, /usr/tmp este o legătură simbolică către /var/tmp, care acum este supusă aceleiași reguli și nu este ștearsă la repornire. Da, toate acestea erau înainte de tmpfs. Se întâmplă, de asemenea, ca sistemul de fișiere rădăcină să fie doar pentru citire, caz în care nu ar trebui să scrii nimic nici în /usr, ci în /var. Sau în /. fundamental nu poate fi scris decât în ​​/etc, care s-a încercat uneori să fie mutat în /var ...)

Birocrații ca Linux Fundația (care a absorbit Free Standards Group în timpul expansiunii sale de acum câțiva ani) documentează și complică cu bucurie aceste reguli fără măcar să încerce să le înțeleagă originile. Nu au nicio idee că Ken și Dennis au mutat pur și simplu o parte din sistemul de operare în directorul lor principal, deoarece discul RK05 de pe PDP-11 era prea mic.

Sunt destul de sigur că busybox pune fișiere în același mod ca în trecut. Nu există niciun motiv real pentru a face acest lucru până acum. Personal, fac doar /bin, /sbin și /lib link către directoare similare în /usr. La urma urmei, oamenii care lucrează cu software încorporat încearcă să înțeleagă și să simplifice...

Sursa: www.habr.com

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster