Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

Programmers Debate

- - - - -
  • Please log in to reply
149 replies to this topic

#37
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003

Quote

Puterea de calcul creste si nu mai e nevoie sa stoarcem instructiuni din fiecare ciclu posibil...
Tu spui asta si mai ales cand vrei sa faci OS-uri ?!
Ti-am dat exemplu clar de cod nativ optimizat generat de JIT si ma gandeam ca tragi un ochi sa intelegi ceva din asm-ul obtinut. Dar cred ca esti un pusti intr-ale meseriei...

Edited by neagu_laurentiu, 10 December 2008 - 23:10.


#38
Love4Boobies

Love4Boobies

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 09.12.2008

View Postneagu_laurentiu, on Dec 10 2008, 23:08, said:

Tu spui asta si mai ales cand vrei sa faci OS-uri ?!
Ti-am dat exemplu clar de cod nativ optimizat generat de JIT si ma gandeam ca tragi un ochi sa intelegi ceva din asm-ul obtinut. Dar cred ca esti un pusti intr-ale meseriei...

:) Hai ca m-ai amuzat. Da, spun asta! E greu de crezut dar nu sunt singurul care considera asta. Cauta in toate lucrarile de specialitate recente (e.g. Tanenbaum). Ideea e ca intr-adevar, acum ceva vreme aveam nevoie de performante. Acum sistemele sunt performante si mai putem sa inchidem un ochi intr-o directie pentru a ne uita in spre altceva (vorbesc despre securitate). In momentul de fata astea sunt ariile de interes in domeniu:

- Procesarea paralela si distribuita
- Siguranta aplicata la nivel de OS (e.g. design microkernel)
- Abstractizarea prin limbaje la nivel inalt

In plus, nu am spus ca optimizarea nu e importanta, pentru ca este. Am spus doar ca putem sa lasam putin din ea pentru a capata alte avantaje. Niciuna din extreme nu e buna, asa ca vorbesc de un compromis.

Ai putea intreba la ce e util XML. Am putea face un cod mult mai compact care astfel ar putea fi citit mai repede de pe hard. La fel si despre HTML. Paginile ar putea fi incarcate instant, avand in vedere ca viteza internetului e limitata. Vezi unde bat?

Cheers,
Bogdan

#39
madlex

madlex

    Active Member

  • Grup: Senior Members
  • Posts: 1,270
  • Înscris: 11.07.2003

Quote

1) Am dreptate si in cazul Singularity. Nu stiu cine si ce a scris pe alt thread dar daca a scris asta, a gresit. Imi pare rau, dar sunt foarte la curent cu subiectul.
Nu numai ca te inseli. Dar spunand asta ne si demonstrezi ca nu ai creat nici un OS, si ai luat si tu niste surse de pe undeva le-ai compilat si te-ai scos ca OS dev.

Quote

3) Exista alte sisteme de operare care imbratiseaza CIL si tocmai am dat SharpOS ca exemplu. Dealtfel exista sisteme de operare care merg pe Java (care are acelasi principiu, dar ca o implementare mai putin grozava) si chiar procesoare care ruleaza Java ca bytecode nativ. Mai documenteaza-te tu.
Java are bytecode nativ?
Da-ne si tu un exemplu, ca fiecare putem arunca o duda diferita.

Quote

4) Pentru a face un OS in C# you do need some setting up, dar nu mai mult de 100 de linii de cod intr-un limbaj la nivel mai low so drop it cu dezavantajele.
Da...Cred ca stiu la ce te referi.
Liniile erau parca Prepare("C#"); RunCode("C#",buffer,kernel_mode); Nu?
100 linii? Esti amuzant..

Dar exemplificari nu ne postezi si noua? (Ca eu personal m-am saturat de explicatiile vide sau luate de pe primul google).
Te rog..exemplifica cand postezi o afirmatie.
Si uita-te si tu pe pagina de la Singularity pe ms.com poate gasesti si pasajul in care ti se explica cum e construita baza.

Edited by madlex, 11 December 2008 - 08:56.


#40
NumeDeCod

NumeDeCod

    Active Member

  • Grup: Senior Members
  • Posts: 1,544
  • Înscris: 11.03.2005
Propun inceperea cercetarilor in privinta dezvoltarii unui sistem de operare complet in Javascript. Tot ce vom avea nevoie este sa avem flash-uit in BIOS kernelul unui browser web (se rezolva in maxim 10000 de linii de ASM optimizat). In acest fel putem uita complet pana si de pointeri. Who needs'em? :D Aplicatiile actuale vor fi desigur emulate, instructiunile masina din ele vor fi convertite in cod JS si rulate de un emulator special. Va fi creat un nou set de API-uri pentru functiile 'native' ale noului sistem de operare, iar aplicatiile nu vor mai trebui nici macar compilate, ci executate direct din codul lor sursa :) Conceptul de compilator va disparea complet, practic oricine va putea scrie orice fel de program instant (evident ca in acest mod ultra-protejat este exclusa posibilitatea aparitiilor unor aplicatii malware/virusi/spyware/rau-intentionate, nu?).

Nu vad cat de securizat poate fi un OS managed. Sa inteleg ca in .NET nu exista functii care imi permit sa fac wipe complet la toate partitiile existente pe HDD-urile unui user, sau sa loghez toate parolele care le gasesc si sa le trimit prin TCP la un site fantoma de prin China? De fapt o sa fie mai usor nu mai greu. Ma tem ca tot o sa ai nevoie de un antivirus, si tot o sa ai nevoie sa bagi 15 casete de dialog in care sa intrebi user-ul daca CHIAR VREA sa dea drumul la un program, si tot o sa ai nevoie sa ai grija ca un program sa nu aloce cate 100 TB de 'obiecte' noi pe secunda fara nici un motiv anume.

C# deja incepe sa devina un limbaj obsolete, cu putin noroc va disparea complet in 4-5 ani (inlocuit desigur cu un limbaj patentat de M$ care o sa fie si mai super-ultra-mega sigur/usor/securizat/protejat de erori stupide). Citez din Star Trek:Generations: "mai sunt destule litere in alfabet" Si probabil si atunci o sa se gaseasca 2-3 insi care o sa vrea sa faca din el kernel de sistem.

#41
Love4Boobies

Love4Boobies

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 09.12.2008

View Postmadlex, on Dec 11 2008, 08:34, said:

Nu numai ca te inseli. Dar spunand asta ne si demonstrezi ca nu ai creat nici un OS, si ai luat si tu niste surse de pe undeva le-ai compilat si te-ai scos ca OS dev.

Imi cer scuze dar nu vad logica in chestia asta. Chiar nu ai ce sa mai zici?

1. Chiar daca m-as insela, cum ar demonstra asta ANYTHING? :)) Logica ta este... well...
2. Care ar fi rostul in a copia niste surse? Sa ma laud cui? Sa fac mai exact *ce* cu ele? Te asigur ca nu e asa... Si daca era, nu stateam 6 ani pe asa ceva.

Quote

Java are bytecode nativ?
Da-ne si tu un exemplu, ca fiecare putem arunca o duda diferita.

Logic ca java are bytecode specific. Altfel ce crezi ca face JIT-ul? Traduce x86 in... x86?

Quote

Da...Cred ca stiu la ce te referi.
Liniile erau parca Prepare("C#"); RunCode("C#",buffer,kernel_mode); Nu?
100 linii? Esti amuzant..

100 de linii de C. De exemplu C nu are nevoie de niciun pic de setting up (it was meant to be a system programming language), pe cand C++ are nevoie de cate ceva, though nu mare lucru.


Quote

Dar exemplificari nu ne postezi si noua? (Ca eu personal m-am saturat de explicatiile vide sau luate de pe primul google).
Te rog..exemplifica cand postezi o afirmatie.
Si uita-te si tu pe pagina de la Singularity pe ms.com poate gasesti si pasajul in care ti se explica cum e construita baza.

madlex, imi pare rau dar esti complet superficial. Ti-am dat o groaza de explicatii si faci lumea sa se repete probabil pentru ca tu nu ai niciun argument. Inainte l-am acuzat pe neagu_laurentiu din greseala - ma refeream la tine. Ce nu ai inteles? Nu am luat nicio explicatie de pe Google; in plus, atunci cand tu ai o nelamurire, inainte de a posta, STFW! Sa zici tu ca codul managed e aspect implicit al RAD si sa zici ca java nu are bytecode propriu arata ca nu ai nici macar cea mai vaga legatura despre ce vorbesti.

Stiind ca vei fi incapabil de a cauta pe net, uite un citat mura-n gura din Singularity: Rethinking the Software Stack:

Quote

Like the previous Cedar [26] and Spin [4] projects, the Singularity
project enjoys the safety and productivity benefits of writing a
kernel in a type-safe, garbage-collected language. Counting lines
of code, over 90% of the Singularity kernel is written in Sing#.
While most of the kernel is type-safe Sing#, a significant portion
of the kernel code is written in the unsafe variant of the language.
The most significant unsafe code is the garbage collector, which
accounts for 48% of the unsafe code in Singularity. Other major
sources of unsafe Sing# code include the memory management
and I/O access subsystems. Singularity includes small pockets of
assembly language code in the same places it would be used in a
kernel written in C or C++, for example, the thread context
switch, interrupt vectors, etc. Approximately 6% of the
Singularity kernel is written in C++, consisting primarily of the
kernel debugger and low-level system initialization code.

Am explicat despre Spec# si Sing# deja. Codul de debugging nici nu se mai pune deoarece it's going to be stripped out din orice *release* al unui sistem de operare. Codul de initializare e absolut normal sa fie scris in asamblare si C/C++. Dealtfel, chiar am spus. E vba de cca 100 de linii de cod + bootstrapping. Alte lucruri care trebuie facute in asamblare (pentru ca iar vei incepe sa plangi si sa te zbati ca un copil mic ca nu pricepi) sunt lucruri cum ari fi creerea GDT-ului (da, desi Singularity are SIP-uri si ruleaza in pmode, are nevoie de cel putin 2 descriptori: unul nul iar altul pt SIP-uri si kernel) - la asta se refera cand zice de partile care trebuie scrise in asamblare si intr-un kernel C/C++. Alt lucru scris in C este HAL-ul, dupa cum ziceam. Daca 90% nu reprezinta baza kernelul-ui atunci ce? Ideea de a folosi CIL este ca totate modulele sa fie sigure si sa ruleze in acelasi spatiu de adresare al CPU-ului. Din moment ce 90% din cod nu se foloseste de pointeri pentru a face asta, codul e evident mai sigur.

Imi pare rau ca am fost putin cam dur, nu aveam intentia asta dar e destul de enervant sa trebuiasca sa se planga cineva ca nu explici cand deja ai explicat de 2 ori. Nu am nimic impotriva ta madlex ca persoana  :peacefingers: .

View PostNumeDeCod, on Dec 11 2008, 13:29, said:

Propun inceperea cercetarilor in privinta dezvoltarii unui sistem de operare complet in Javascript. Tot ce vom avea nevoie este sa avem flash-uit in BIOS kernelul unui browser web (se rezolva in maxim 10000 de linii de ASM optimizat). In acest fel putem uita complet pana si de pointeri. Who needs'em? :D Aplicatiile actuale vor fi desigur emulate, instructiunile masina din ele vor fi convertite in cod JS si rulate de un emulator special. Va fi creat un nou set de API-uri pentru functiile 'native' ale noului sistem de operare, iar aplicatiile nu vor mai trebui nici macar compilate, ci executate direct din codul lor sursa :) Conceptul de compilator va disparea complet, practic oricine va putea scrie orice fel de program instant (evident ca in acest mod ultra-protejat este exclusa posibilitatea aparitiilor unor aplicatii malware/virusi/spyware/rau-intentionate, nu?).

Exista deja. Fa un search pe Google pt ca mi-e lene acum. In plus, Java nu e atat de sigur pe cat ai crede. De aceea spun ca C# este superior Java. Si cu siguranta va aparea ceva mai nou, cum zic si altii de pe aici, dar nu vad exact de ce s-ar plange cineva? Limbajele evolueaza si e firesc. In momentul de fata limbajele curente put la capitolul procesare paralela si abia misca in directia sincronizarii (unele) - C nefiind un exemplu. Cat despre partea cu aplicatiile Java, si ele trebuie scrise. Dar exista un concept similar. CLI-ul era menit initial sa fie vazut ca un limbaj de programare nu ca un mod de a interactiona cu OS-ul. Dealtfel, de aici si posibilitatea de a executa batch-uri in say, DOS. La GUI-urile moderne s-a pierdut acest concept... Dar documentati-va in legatura cu Smalltalk. Voi reveni asupra subiectului, nu va plangeti ca nu ofer detalii dar este un mod GUI de a programa pe care il poate face si un neinitiat in ale calculatoarelor. Exista copii de 4 ani care au facut extensii la programe de editare de imagini, etc. Chiar voi reveni asa ca nu ma quote-ati sa-mi ziceti ca nu dau detalii dar nu am in secunda asta timpul necesar.

Quote

Nu vad cat de securizat poate fi un OS managed. Sa inteleg ca in .NET nu exista functii care imi permit sa fac wipe complet la toate partitiile existente pe HDD-urile unui user, sau sa loghez toate parolele care le gasesc si sa le trimit prin TCP la un site fantoma de prin China? De fapt o sa fie mai usor nu mai greu. Ma tem ca tot o sa ai nevoie de un antivirus, si tot o sa ai nevoie sa bagi 15 casete de dialog in care sa intrebi user-ul daca CHIAR VREA sa dea drumul la un program, si tot o sa ai nevoie sa ai grija ca un program sa nu aloce cate 100 TB de 'obiecte' noi pe secunda fara nici un motiv anume.

Nu confunda codul managed cu platforma .NET. Ala e un framework. Ceea ce face codul sigur este type-saftey-ul inpus de bytecod.

Quote

C# deja incepe sa devina un limbaj obsolete, cu putin noroc va disparea complet in 4-5 ani (inlocuit desigur cu un limbaj patentat de M$ care o sa fie si mai super-ultra-mega sigur/usor/securizat/protejat de erori stupide). Citez din Star Trek:Generations: "mai sunt destule litere in alfabet" Si probabil si atunci o sa se gaseasca 2-3 insi care o sa vrea sa faca din el kernel de sistem.

Limbajele evolueaza. E logic dealtfel, nu? Ce e rau in asta?

Cheers,
Bogdan

Edited by Love4Boobies, 11 December 2008 - 13:38.


#42
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
C# este atat de performant, incat e ideal pentru game engine-uri, in consecinta memory management este pentru un astfel de limbaj (CIL) un fleac.
Daca producatorii de placi video stiau ca M$ va scoate asa o minunatie nu se mai oboseau sa integreze functionalitati pentru openGL in GPU. Ce oameni prosti. Ce stiu ei. Noi stim mai bine :lol:

View PostNumeDeCod, on Dec 11 2008, 13:29, said:

C# deja incepe sa devina un limbaj obsolete, cu putin noroc va disparea complet in 4-5 ani (inlocuit desigur cu un limbaj patentat de M$ care o sa fie si mai super-ultra-mega sigur/usor/securizat/protejat de erori stupide). Citez din Star Trek:Generations: "mai sunt destule litere in alfabet" Si probabil si atunci o sa se gaseasca 2-3 insi care o sa vrea sa faca din el kernel de sistem.
Despre ce episod e vorba? :coolspeak:

Edited by OriginalCopy, 11 December 2008 - 13:43.


#43
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003
Explica si mie Love4Boobies de ce trebuie sa avem JIT in loc de compilare la instalare. Ambele metode optimizeaza pentru masina mea, lucru bun, insa JIT-ul introduce intarzieri la startup plus memorie ocupata suplimentar. Care e ratiunea ?

PS: limbajul nu conteaza.

Edited by neagu_laurentiu, 11 December 2008 - 21:07.


#44
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postneagu_laurentiu, on Dec 11 2008, 21:06, said:

Explica si mie Love4Boobies de ce trebuie sa avem JIT in loc de compilare la instalare. Ambele metode optimizeaza pentru masina mea, lucru bun, insa JIT-ul introduce intarzieri la startup plus memorie ocupata suplimentar. Care e ratiunea ?

PS: limbajul nu conteaza.

Nu ai inteles nimic. Situatia sta astfel: tu ai acum mult mai multa memorie de lucru si un CPU MULT mai performant decat acum 5 ani.

Deci de ce sa nu sacrifici din avansurile tehnologice din ultimii ani si sa folosesti o tehnica care te protejeaza de programatori incompetenti?

Ooops, am zis eu asta? Voiam sa zic ca in software oricum apar erori, oricat de buni ar fi programatorii,
deci de ce sa nu lasi un sistem sa mascheze erorile in software, astfel incat acestea sa fie din ce in ce mai greu de gasit, de reparat, iar tehnologia sa avanseze?

Of, iar am dat-o in bara cu ideile mele gresite. Voiam sa zic ... sa aibe grija de resursele tale. Cum sa mascheze ceva, doamne fereste!

Pana la urma urmei importanta nu e calitatea programului, ci ce vede clientul de rand. Si ce vede clientul? Vede ca ai terminat produsul la timp. Altceva nu-l intereseaza.

Lasa tu detaliile alea de nivel tehnic, ca nu-s importante. Pana la urma urmei e posibil sa scrii si sisteme de operare in limbaje interpretate, JITed, memory managed, sau cum vreti voi sa le ziceti. Deci daca e posibil sa faci asta, inseamna ca tehnologia e buna.

Pricepusi si matale acum? :rolleyes:

Edited by OriginalCopy, 11 December 2008 - 21:40.


#45
madlex

madlex

    Active Member

  • Grup: Senior Members
  • Posts: 1,270
  • Înscris: 11.07.2003
Mai Moromete al SO-urilor:

Quote

Logic ca java are bytecode specific. Altfel ce crezi ca face JIT-ul? Traduce x86 in... x86?
Specific DA.Nativ NU. Mai citeste ce ai scris. Amesteci termenii. Spuneai NATIV!!
Bytecode nativ nu prea exista, aia se refera la COD MASINA.

In momentul in care orice este compilat nativ, nu va mai fi cross-platform. (ca oricum nu prea e)
In consecinta va depinde de kernelul OS-ul pe care a fost compilat NATIV.
in consecinta nu va putea fi interpretat direct de un CPU (obisnuit).

Inteles, Linus T.?!

Quote

Sa zici tu ca codul managed e aspect implicit al RAD
Si nu e?
La ce ma ajuta managed Linus? Sa nu mai imi fac griji de alocari/dealocari nu? Deci dezvolt mai rapid? da.
Deci e un aspect al unui potential limbaj orientat RAD? da

Quote

sa zici ca java nu are bytecode propriu
Citeste mai sus.
BYTECODE NATIV. E o "MICA" diferenta.

Ia, fii atent la ce ai spus:

Quote

Singularity are tot kernelul scris in Sing# (o extensie a Spec#, care e o extensie a C#). In asamblare e scris bootstrap-ul, iar in C++ e scris HAL-ul (care aici inseamna Bartok).

La citatul care l-ai dat:

Quote

Singularity includes small pockets of
assembly language code in the same places it would be used in a
kernel written in C or C++, for example, the thread context
switch, interrupt vectors, etc. Approximately 6% of the
Singularity kernel is written in C++, consisting primarily of the
kernel debugger and low-level system initialization code.
Hai sa vedem ce am scris eu:

Quote

Singularity are baza kernelului scrisa in C si asm. Mai gandeste-te.

DECI ==> Nu intreg kernelul este scris in Sing da? Baza lui este C + asm.
Nu DOAR bootstrap-ul e scris in low-level languages, dar si portiuni din fundamentul kernel-ului (thread switch din paragraful de mai sus).
Aia nu face parte din bootstraping.

Clar acum ?

Quote

Din moment ce 90% din cod nu se foloseste de pointeri pentru a face asta, codul e evident mai sigur.
Si fff..foarte neoptimizat. Daca asta era solutia de vis, alte companii mai istete decat tine le implementau deja. Relax.
Singularity = marketing.

Quote

Codul de debugging nici nu se mai pune deoarece it's going to be stripped out din orice *release* al unui sistem de operare
Esti naiv.
Este vorba de debugger-ul kernelului. Nu va fi niciodata scos in release :))
Confunzi cu aplicatiile normale, unde compilate pe release "dispare" codul dedicat debugging-ului aplicatiei

Si in prezentarea OS-ului tau pe SP ai precizat: "fara deadlockuri si threaduri" dar "optimizat pentru procesare paralela"
Citeste mai sus cat de mult esti contrazis, de cati oameni si ce argumente "solide" aduci.
Cati termeni ii confunzi amesteci etc..

Bati campii. D-asta am vrut sa inchei discutia cu tine din timp, fiindca am mai "trait" episoade asemanatoare pe acest forum.
Lumea e larga..

Nu am nici un chef sa port o astfel de discutie. Te rog..
Revino la dezvoltarea lui banality acela..

Edited by madlex, 12 December 2008 - 00:08.


#46
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003

View PostOriginalCopy, on Dec 11 2008, 21:33, said:

Pricepusi si matale acum? :rolleyes:
:wallbash:  :clapping:

Da' eu insist: pointerul (intr-o descriere neacademica) reprezinta modalitatea usoara de a lucra cu adrese. Si un OS lucreaza din greu cu adrese (ce sa-i faci, asa e procesorul construit).
Sa facem un exercitiu banal in lucrul cu adresele si sa vedem la ce te ajuta safe-type -urile tale si securitatea ridicata (afisare octetilor dintr-un intreg pe 32 biti - in realitate se lucreaza serios cu acesti octeti dar pentru simplificare ne limitam doar la asta):
// C#
int i=65535;
byte []p;
p = BitConverter.GetBytes(i);
Console.WriteLine("{0} {1} {2} {3}", p[0], p[1], p[2], p[3]);
// C
int i = 65535;
BYTE* p;
p=(BYTE*)&i;
printf("%x %x %x %x\n",*(p+0),*(p+1),*(p+2),*(p+3));

Vrei sa masuram viteza, timpul, memoria, incalzirea procesorului, consumul si tot ce mai vrei pe cele doua cazuri ?  :D

Limbajele acestea "ridicate" sunt bune la incepatori... dar dupa ce dai de gustul programarii si vrei sa faci ce-ti taie capul (fiindca stii ce faci) atunci nu mai vrei piedici puse ca pentru scolari ! Mai ales la OS-uri  :huh:

#47
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postneagu_laurentiu, on Dec 11 2008, 23:43, said:

Vrei sa masuram viteza, timpul, memoria, incalzirea procesorului, consumul si tot ce mai vrei pe cele doua cazuri ?  :D
Nu inteleg de ce te legi mereu de aceste detalii minore de nivel tehnic.
Am facut un contract nescris cu firmele de hardware. Ei mi-au pus in mana o tehnologie cu care sa creez ceva care sa le distruga componentele, dar nu imediat, ci asa usor usor, iar oamenii care imi folosesc programul nu se prind. Componenta se strica, ei isi cumpara alta.
Producatorul de hardware castiga, eu castig, si clientul castiga, dar nu isi da seama: astfel isi tine mereu componentele la zi.

Dar hey, nu e nimeni vinovat! De ce as fi? Pana la urma urmei si Peugeot procedeaza la fel.

View Postneagu_laurentiu, on Dec 11 2008, 23:43, said:

Limbajele acestea "ridicate" sunt bune la incepatori... dar dupa ce dai de gustul programarii si vrei sa faci ce-ti taie capul (fiindca stii ce faci) atunci nu mai vrei piedici puse ca pentru scolari ! Mai ales la OS-uri  :huh:
Pai tocmai, tocmai pentru OS-uri au fost dezvoltate tehnologiile JIT, automatic garbage collector, s.a.m.d. Pentru ca eu stiu ca o sa fac greseli, si asta e inevitabil.
Dar cu acest buzzword numit JIT ma pot lauda in fata clientului, si el crede ca produsul meu intr-adevar isi merita banii. Produsul va fi mai lent, dar lui ii spun ca asta e pentru ca aceasta (brand new and shiny) tehnologie face lucruri atat de magice incat se merita.

Cu aceasta tehnologie ultimativa pana si prescolarii pot face sisteme de operare, si poate chiar si castiga bani din asta. It's all a matter of marketing. Isn't this world GREAT?

Clientul meu iese incantat pe usa, ochii ii sclipesc precum copilasilor cu o noua jucarie in mana, lucru pe care clientul tau nu-l va trai niciodata, you buzzwordless programmer!

Edited by OriginalCopy, 12 December 2008 - 00:41.


#48
Love4Boobies

Love4Boobies

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 09.12.2008

View Postmadlex, on Dec 11 2008, 23:09, said:

Mai Moromete al SO-urilor:


Specific DA.Nativ NU. Mai citeste ce ai scris. Amesteci termenii. Spuneai NATIV!!
Bytecode nativ nu prea exista, aia se refera la COD MASINA.

Acum tu inventezi termeni?

Quote

In momentul in care orice este compilat nativ, nu va mai fi cross-platform. (ca oricum nu prea e)
In consecinta va depinde de kernelul OS-ul pe care a fost compilat NATIV.
in consecinta nu va putea fi interpretat direct de un CPU (obisnuit).

Inteles, Linus T.?!

Binenteles ca n-ai priceput nimic si iar te-ai pus pe scris. Kernelul este compilat in CIL, iar HAL-ul (adica un compilator Bartok) il va translata in cod masina la rulare. Deasemeni pt toate programele rulate.

Quote

Si nu e?
La ce ma ajuta managed Linus? Sa nu mai imi fac griji de alocari/dealocari nu? Deci dezvolt mai rapid? da.
Deci e un aspect al unui potential limbaj orientat RAD? da

Nu, nu e. Intereseaza-te ce inseamna defapt RAD si nu te lua doar dupa traducere.

Quote

DECI ==> Nu intreg kernelul este scris in Sing da? Baza lui este C + asm.
Nu DOAR bootstrap-ul e scris in low-level languages, dar si portiuni din fundamentul kernel-ului (thread switch din paragraful de mai sus).
Aia nu face parte din bootstraping.

Clar acum ?

Si eu am zis ca doar bootstrapping-ul e in assembly? Ce naiba vorbeam de descriptori? Chiar trece totul pe langa tine? Si ce zici tu nu e "fundamentul" kernel-ului. Pun pariu ca abia ai o vaga idee ce "este" un kernel si probabil nu ai idee ce contine dar vei cauta repde pe net sa mai trantesti un raspuns care binenteles ca tot ce ai scris mai devreme va fi total pe langa si il vei sustine cu tenacitate.

Quote

Si fff..foarte neoptimizat. Daca asta era solutia de vis, alte companii mai istete decat tine le implementau deja. Relax.
Singularity = marketing.

Neoptimizat?! Am explicat problema cu optimizarea deja: nu e o problema asa mare precum crezi. In afara de asta, codul CIL este MULT mai rapid decat ce vezi tu sub Windows. De ce? Ti-am mai spus ca e aplicat pentru a simula un microkernel (nu unul monolitic sau hibrid), motiv pentru care scapam de schimbarea address space-urilor la context switch si de problema cu schimbarea CPL-ului. Revin si la IPC?

Marketing? E un proiect open-source... De ce e open source? Pentru ca piata ia o intorsatura in directia aia si nu au incotro probabil. Asta si vor sa li se alature lume cu idei bune si sa le ramana lor dreptul intelectual. Asta nu are nicio legatura cu nimic. Cauta sa-si imbunatateasca sculele (e.g compilatoarele) si sa gaseasca noi tehnologii atat pt ele cat si pt sistemele de operare. Nu putem prezice ce vor implementa si ce nu.

Quote

Esti naiv.
Este vorba de debugger-ul kernelului. Nu va fi niciodata scos in release :))
Confunzi cu aplicatiile normale, unde compilate pe release "dispare" codul dedicat debugging-ului aplicatiei

Asta e cea mai mare tampenie pe care am citit-o pana acum. Poate tu consideri exceptile debugging dar nu e vorba despre asta.

Quote

Si in prezentarea OS-ului tau pe SP ai precizat: "fara deadlockuri si threaduri" dar "optimizat pentru procesare paralela"
Citeste mai sus cat de mult esti contrazis, de cati oameni si ce argumente "solide" aduci.
Cati termeni ii confunzi amesteci etc..

Ok, tocmai mi-ai demonstrat ca nu esti capabil sa intelegi ABSOLUT NIMIC de pe acest forum. Asta sau esti ungur (no offense pt ei). Nu am zis fara thread-uri ci fara thread-uri care se blocheaza intre ele. Esti chior? Nu am confundat nici macar un termen. Vorbesti aiureli ca de obicei.

Quote

Bati campii. D-asta am vrut sa inchei discutia cu tine din timp, fiindca am mai "trait" episoade asemanatoare pe acest forum.
Lumea e larga..

Nu am nici un chef sa port o astfel de discutie. Te rog..
Revino la dezvoltarea lui banality acela..

Din curiozitate, a fost macar o conversatie in care sa ai dreptate? Mie mi se pare ca abia ai idee sa folosesti un forum amarat, nu sunt sigur de ce iti dai cu parerea la sectiunea de programare. Probabil nu vrei sa continui conversatia pentru ca esti incapabil si te depaseste.

Cheers,
Bogdan

#49
Saurian

Saurian

    Active Member

  • Grup: Banned
  • Posts: 1,280
  • Înscris: 02.09.2008

View PostLove4Boobies, on Dec 12 2008, 02:50, said:

Acum tu inventezi termeni?



Binenteles ca n-ai priceput nimic si iar te-ai pus pe scris. Kernelul este compilat in CIL, iar HAL-ul (adica un compilator Bartok) il va translata in cod masina la rulare. Deasemeni pt toate programele rulate.



Nu, nu e. Intereseaza-te ce inseamna defapt RAD si nu te lua doar dupa traducere.



Si eu am zis ca doar bootstrapping-ul e in assembly? Ce naiba vorbeam de descriptori? Chiar trece totul pe langa tine? Si ce zici tu nu e "fundamentul" kernel-ului. Pun pariu ca abia ai o vaga idee ce "este" un kernel si probabil nu ai idee ce contine dar vei cauta repde pe net sa mai trantesti un raspuns care binenteles ca tot ce ai scris mai devreme va fi total pe langa si il vei sustine cu tenacitate.



Neoptimizat?! Am explicat problema cu optimizarea deja: nu e o problema asa mare precum crezi. In afara de asta, codul CIL este MULT mai rapid decat ce vezi tu sub Windows. De ce? Ti-am mai spus ca e aplicat pentru a simula un microkernel (nu unul monolitic sau hibrid), motiv pentru care scapam de schimbarea address space-urilor la context switch si de problema cu schimbarea CPL-ului. Revin si la IPC?

Marketing? E un proiect open-source... De ce e open source? Pentru ca piata ia o intorsatura in directia aia si nu au incotro probabil. Asta si vor sa li se alature lume cu idei bune si sa le ramana lor dreptul intelectual. Asta nu are nicio legatura cu nimic. Cauta sa-si imbunatateasca sculele (e.g compilatoarele) si sa gaseasca noi tehnologii atat pt ele cat si pt sistemele de operare. Nu putem prezice ce vor implementa si ce nu.



Asta e cea mai mare tampenie pe care am citit-o pana acum. Poate tu consideri exceptile debugging dar nu e vorba despre asta.



Ok, tocmai mi-ai demonstrat ca nu esti capabil sa intelegi ABSOLUT NIMIC de pe acest forum. Asta sau esti ungur (no offense pt ei). Nu am zis fara thread-uri ci fara thread-uri care se blocheaza intre ele. Esti chior? Nu am confundat nici macar un termen. Vorbesti aiureli ca de obicei.



Din curiozitate, a fost macar o conversatie in care sa ai dreptate? Mie mi se pare ca abia ai idee sa folosesti un forum amarat, nu sunt sigur de ce iti dai cu parerea la sectiunea de programare. Probabil nu vrei sa continui conversatia pentru ca esti incapabil si te depaseste.

Cheers,
Bogdan

Limbajul, oameni buni, vă rog frumos... Sunteți poate genii în programare dar asta nu cred că are nici o legătură cu bunul-simț și respectul celuilalt chiar dacă are o concepție total diferită de a ta... :D

#50
madlex

madlex

    Active Member

  • Grup: Senior Members
  • Posts: 1,270
  • Înscris: 11.07.2003

Quote

Acum tu inventezi termeni?
DEci recunosti ca inainte TU erai in postura asta.
DA "Bytecode Nativ" (folosit de tine) nu exista. Ai vreun argument contra?


Quote

Binenteles ca n-ai priceput nimic si iar te-ai pus pe scris. Kernelul este compilat in CIL, iar HAL-ul (adica un compilator Bartok) il va translata in cod masina la rulare. Deasemeni pt toate programele rulate.
Da, pentru un bytecode anume  (unic indiferent de masina/os) nu pentru un "bytecode nativ" (cod masina).
NU intelegi nici acum, AI SPUS BYTECODE NATIV !!!
Iar ti-ai raspuns singur, cred ca este a treia oara.

Quote

Neoptimizat?! Am explicat problema cu optimizarea deja: nu e o problema asa mare precum crezi. In afara de asta, codul CIL este MULT mai rapid decat ce vezi tu sub Windows. De ce? Ti-am mai spus ca e aplicat pentru a simula un microkernel (nu unul monolitic sau hibrid), motiv pentru care scapam de schimbarea address space-urilor la context switch si de problema cu schimbarea CPL-ului. Revin si la IPC?
Nu reveni ca te bagi (ca si tot topicul asta) in chestii care te depasesc si arunci afirmatii pe care nu le poti sustine.

Quote

Nu, nu e. Intereseaza-te ce inseamna defapt RAD si nu te lua doar dupa traducere.
Asteptam de fapt sa ma contrazici tu, dar... nu poti.

Quote

Asta e cea mai mare tampenie pe care am citit-o pana acum. Poate tu consideri exceptile debugging dar nu e vorba despre asta.
Chiar nu stii la ce ajuta debugger-ul ala care "va fi stripped-out in release"?! Acum "te tii tare" si pe afirmatia asta?
penibil.

Quote

Ok, tocmai mi-ai demonstrat ca nu esti capabil sa intelegi ABSOLUT NIMIC de pe acest forum. Asta sau esti ungur (no offense pt ei). Nu am zis fara thread-uri ci fara thread-uri care se blocheaza intre ele. Esti chior? Nu am confundat nici macar un termen. Vorbesti aiureli ca de obicei.
Afirmatia de mai sus este adevarata cu o condifitie, categoria de oameni din care apartii si tu sa reprezinte "ABSOLUT NIMIC"-ul. Si reprezinta in majoritate.

Te rog, Linus, explica-mi cum elimini tu acest deadlock:

Lock1 lock1
Lock2 lock2

begin Thread1
Lock(lock1)

      Lock(lock2)
      unlock(Lock2)

  Unlock(lock1)
end Thread1

begin Thread2
Lock(lock2)

      Lock(lock1)
      unlock(Lock1)

  Unlock(lock2)
end Thread2

Hai sa vedem ce overhead generezi. :)

Quote

Din curiozitate, a fost macar o conversatie in care sa ai dreptate? Mie mi se pare ca abia ai idee sa folosesti un forum amarat, nu sunt sigur de ce iti dai cu parerea la sectiunea de programare.
Ce argument feminin.
Nu stiu, dar o poti lua pe aceasta ca etalon.

Quote

Probabil nu vrei sa continui conversatia pentru ca esti incapabil si te depaseste.
Am vrut sa imi scutesc timpul de explicatii inutile. Esti montat pe niste informatii pe care doar le-ai citit si interpretat gresit
(TLB, __fastcall, Bytecode nativ,kernel 100% in cod managed, overflow din cauza existentei pointerilor, RAD etc.)

Scuza-ma ca te iau asa, dar m-am saturat de pseudo-genii care se scoala dimineata crezind ca vor schimba lumea cu niste idei banale.
Am fata de ei un sentiment de repulsie care nu mi-l pot controla. Este poate singurul caz in care un pic de ratiune genereaza un munte de prostie.

Am spus mai sus, ai ajuns la o serie de 3 auto-contraziceri, prin care ai venit cu argumente contra propriilor afirmatii.
Sunt la un pas sa scutesc forumul de oameni ca tine..

Edited by madlex, 12 December 2008 - 09:42.


#51
Darkangel

Darkangel

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 29.01.2006
Ppl nu va mai certati atat oricum amandoi aveti dreptate intr-un fel sau altul, nici unul nu are dreptate mai multa decat celalalt, pana la urma depinde de cerintele softului, nu ai sa faci aplicatii web in C++ la fel cum nu ai sa faci procesare de imagini in C# si de cerintele pietei, java are procesor care executa java bytecode, probabil ca se va gasi cineva sa faca un microprocesor pentru cod managed daca asta va fi cererea.

Love4Boobies nu mai incerca sa convingi lumea de avantajele codului managed au fost destule razboaie pe tema asta. Fiecare limbaj isi are locul lui, daca vei face server http comercial si ai sa il faci in C# imi pare rau dar ai sa ai surpriza sa nu faca fata, in cazul asta folosesti ambele limbaje, serverul ai sa il faci in C++ iar front endul il faci in C# pentru ca este mai rapid si fara batai de cap.

Again depinde foarte mult de cerintele clientului/aplicatiei, nu va mai certati pentru ca nu are rost, daca omul vrea sa faca sistem de operare in C# lasa-l sa faca ce e de laudat este faptul ca a reusit sa faca un OS nu conteaza limbajul.

Edited by Darkangel, 12 December 2008 - 09:23.


#52
madlex

madlex

    Active Member

  • Grup: Senior Members
  • Posts: 1,270
  • Înscris: 11.07.2003
Uite, mi-am facut timp pentru tine pentru demonstratia cu fastcall.
Pe un OS Win32, in Visual Studio. Testele pentru alte OS-uri le poate face altcineva.
void __fastcall test_fastcall(DWORD dw1,DWORD dw2)
{}
void __stdcall test_stdcall(DWORD dw1,DWORD dw2)
{}
void __cdecl test_cdecl(DWORD dw1,DWORD dw2)
{}

void __fastcall test_fastcall2(DWORD dw1,DWORD dw2,DWORD dw3,DWORD dw4)
{}
void __stdcall test_stdcall2(DWORD dw1,DWORD dw2,DWORD dw3,DWORD dw4)
{}
void __cdecl test_cdecl2(DWORD dw1,DWORD dw2,DWORD dw3,DWORD dw4)
{}


int _tmain(int argc, _TCHAR* argv[])
{
	UINT64 lires,list,lien;
	const UINT64 itimes(1000 * 1000 * 100);
	UINT64 ii;

	QueryPerformanceFrequency((LARGE_INTEGER*)&lires);
	
	//////////////////////////////////////////////////////////////////////////
	ii = itimes;
	QueryPerformanceCounter((LARGE_INTEGER*)&list);
	while(ii--)
		test_fastcall(1,2);
	QueryPerformanceCounter((LARGE_INTEGER*)&lien);
	
	printf("FASTCALL :%d\n", (lien-list)*1000000/lires);
	//////////////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////////////
	ii = itimes;
	QueryPerformanceCounter((LARGE_INTEGER*)&list);
	while(ii--)
		test_stdcall(1,2);
	QueryPerformanceCounter((LARGE_INTEGER*)&lien);
	
	printf("STDCALL :%d\n", (lien-list)*1000000/lires);
	//////////////////////////////////////////////////////////////////////////
	
	//////////////////////////////////////////////////////////////////////////
	ii = itimes;
	QueryPerformanceCounter((LARGE_INTEGER*)&list);
	while(ii--)
		test_cdecl(1,2);
	QueryPerformanceCounter((LARGE_INTEGER*)&lien);
	
	printf("CDECL :%d\n", (lien-list)*1000000/lires);
	//////////////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////////////
	ii = itimes;
	QueryPerformanceCounter((LARGE_INTEGER*)&list);
	while(ii--)
		test_fastcall2(1,2,3,4);
	QueryPerformanceCounter((LARGE_INTEGER*)&lien);
	
	printf("FASTCALL2 :%d\n", (lien-list)*1000000/lires);
	//////////////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////////////
	ii = itimes;
	QueryPerformanceCounter((LARGE_INTEGER*)&list);
	while(ii--)
		test_stdcall2(1,2,3,4);
	QueryPerformanceCounter((LARGE_INTEGER*)&lien);
	
	printf("STDCALL2 :%d\n", (lien-list)*1000000/lires);
	//////////////////////////////////////////////////////////////////////////
	
	//////////////////////////////////////////////////////////////////////////
	ii = itimes;
	QueryPerformanceCounter((LARGE_INTEGER*)&list);
	while(ii--)
		test_cdecl2(1,2,3,4);
	QueryPerformanceCounter((LARGE_INTEGER*)&lien);
	
	printf("CDECL2 :%d\n", (lien-list)*1000000/lires);
	//////////////////////////////////////////////////////////////////////////	
	return 0;
}

Si niste rezultate (timpii sunt in microsecunde):

100 milioane de apeluri:

Quote

FASTCALL :5212207
STDCALL :4750174
CDECL :4702261
FASTCALL2 :5231020
STDCALL2 :4823378
CDECL2 :4735304
Press any key to continue . . .

1 milion de apeluri:

Quote

FASTCALL :51103
STDCALL :45950
CDECL :45777
FASTCALL2 :51772
STDCALL2 :47548
CDECL2 :46114
Press any key to continue . . .

Edited by madlex, 12 December 2008 - 09:35.


#53
Love4Boobies

Love4Boobies

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 09.12.2008

View Postmadlex, on Dec 12 2008, 08:38, said:

DEci recunosti ca inainte TU erai in postura asta.
DA "Bytecode Nativ" (folosit de tine) nu exista. Ai vreun argument contra?

Nativ. Al procesorului. Ok, imi cer scuze, asa e. Am crezut ca te legi de altceva (de faptul ca Java nu are bytecode propriu).

Anyway, cu TLB-ul nu am gresit: este memorie. B-ul vine de la BUFFER. Ce este un buffer? Ti-am zis ca nu poti retine acolo valorile pe care le doresti, dar este memorie si ti-o dadeam ca exemplu deoarce e mai rapida decat cache L1 (ai zis ca nu exista nimic mai rapid). Stiu ce e un TLB, dealtfel era necesar pentru a porta Simplexity pe alte arhitecturi (vezi MIPS). La MIPS, TLB-ul e controlat software, nu hardware ca la Intel (unde si acolo ai o oarecare putere asupra lui pentru ca e necesar in unele situatii). Dealtfel si memoria ROM este tot memorie, nu? Indiferent ca e vorba de cod sau tabele.

Wikipedia said:

RAD calls for the interactive use of structured techniques and prototyping to define user's requirements and design the final system. Using structured techniques the developer first builds preliminary data models and business process models of the business requirements. Prototyping then helps the analyst and users to verify those requirements and to formally refine the data and process models. The cycle of models, then prototypes, then models, then prototypes and so forth on, ultimately results in a combined business requirements and technical design statement to be used for constructing new systems.

RAD nu presupune cod managed. Dealtfel, MSVC++ ofera un mediu RAD dar nu si cod managed. Programarea vizuala este o forma de RAD. Codul managed tine de limbaj in sine (si binenteles, de compilator). Un mediu RAD poate fi pus peste un compilator de Java sau C# fara probleme, evident.

In cazul Singularity tot zici ca nu am dreptate. Cu ce anume gresesc? Iar CIL-ul tradus si executat la ring 0 IMPREUNA cu kernelul nu crezi ca este mai rapid decat ruland la ring 3. Tin sa precizez ca Windows are kernel threads si prin urmare context switch-ul presupune si schimbarea de CPL (3->0->3), pe langa cea a spatiului de adresare. Asta e motivul pentru care CIL devine mai rapid chiar decat un microkernel care se foloseste de mecanismele hardware de protectie. Comparativ cu un kernel monolitic, intr-adevar e mai lent, dar nu cu mult. Simplexity nu e un astfel de sistem. E un microkernel ce se foloseste de hardware, nu de bytecode-uri safe.

Modul in care ma ocup eu de deadlock-uri in Simplexity depinde de situatie. Memoria tranzactionala e unul din exemple. Pentru sincronizare, am implementat also monitoare Mesa (ceea ce nu e nicio inovatie, a devenit probabil un standard pentru OS-urile moderne).

Am apucat sa dorm ceva mai mult si nu mai sunt atat de iritat de la surplusul de cofeina; hai s-o lasam mai moale si sa purtam un debate civilizat, fara sa ne enervam :P . Nu am de unde sa stiu neaparat ca de multe stii sau care e aria ta de expertiza in ale calculatoarelor so imi retrag comentariile ofensive (dar na, trebuie sa intelegi ca si de la tine ma astept la acelasi lucru).

Cheers,
Bogdan

#54
Ann0nim

Ann0nim

    Active Member

  • Grup: Members
  • Posts: 1,082
  • Înscris: 07.04.2008
- intrebari legate de liceu sau facultate (din domeniu)
Avand in vedere ca peste aproape 2 ani sunt la facultate am cateva intrebari:
1.Fac C++ neintensiv,cu ce facem in clasa ma descurc foarte bine dar multi imi spun ca daca intru in facultate doar cu ce fac in liceu nu rezist nici 2 luni,asa e?profa' nu zice nimic de asta dar am auzit ca ar trebui sa fac niste pregatire.Tot ce am facut pana acum:vectori,matrici,functii,siruri de caractere si structuri de date.Pointerii nu sunt in programa dar mai invat si eu de pe alte site-uri,totusi cred ca nu ar fi de ajuns.
2.Care ar fi cunostintele minime pe care ar trebui sa le am cand ajung la facultate(C++)?
3.Ar mai trebui sa stiu si alt limbaj de programare(gen ASM,VB)?
4.Am observat ca unii vorbiti de niste chestii SF pentru mine,adica va pricepeti in programare.Ati invatat pe cont propriu sau in facultate?Daca ati invatat singuri puteti sa imi recomandati niste carti sau site-uri?

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate