On Thursday 31 July 2003 11:54, Claudiu Cismaru wrote:
> Pentru ca in acel moment, nu exista variabila PATH... De asemenea,
> execve NU tine cont de PATH. PATH e o variabila setata de shell sau
> poate fi setata de program pentru a transmite la libc informatii.
> Probabil cei care au facut kernel-ul s-au gandit la multe solutii
> inainte de a implementa ce e mai sus...
Stiu lucrul asta si motivele pentru care se fac lucrurile astea.
Informatiile de care vorbesti tu insa nu ajung la libc ci la shell.
Ce vroiam sa spun este ca asemenea hardcodari nu au loc intr-un rock-solid
design. Linux nu este o capodopera de design. Are o mare calitate insa.
Exista si functioneaza, si trebuie sa ne multumim cu atat.
UNIX in sine e notoriu prin lipsa unui design foarte riguros - asta inseamna
ca pot incapea in UNIX o multime de alte lucruri care nu au fost gandite de
creatorii originali. Dar inseamna si ca multe lucruri nu au fost gandite, ci
facute.
UNIX este din punctul meu de vedere un set de concepte foarte simple. Totul
e fisier, exista niste apeluri sistem care trebuie implementate... si cam
atat. UNIX poarta o haina grea, a anilor '70. Linux, sistemul anilor 2000,
profita de pe urma simplitatii si flexibilitatii fantastice, dar repeta
greselile vechi. Isi taie din flexibilitate pentru ca trage dupa sine atat de
multe chestiuni 'pe care le stii deja'. /dev, /etc, /bin /usr/bin, /sbin,
/var, /usr... Iar utilizatorul inghesuit acolo intr-un /home/napastuitul Ah,
scuze, /home/napastui ca mai mult de opt caractere e crima. Linux mosteneste
astfel de limitari care... nu-si au locul. Asa ca Linux ramane un sistem de
anii '70 care inca se mai dezvolta.
Sex, drugs and rock and roll,
Dorin