mboost-dp1

Google

Chrome 14 kan afvikle maskinkode direkte

- Via The H Open - , redigeret af Emil , indsendt af arne_v

Chrome har længe optimeret deres javascipt-motor, V8, så den bliver mere og mere effektiv til at afvikle webapplikationer. I den kommende udgave af Chrome vil det dog kunne gå endnu hurtigere.

I den nyeste beta-udgave af Chrome 14 har Google indbygget funktionalitet til at afvikle maskinkode, kompileret fra C eller C++, direkte i browseren, en funktion de kalder Native Client.

For at kunne udnytte den nye funktion, skal webapplikationerne laves med Native Client SDK, der findes til både Windows, OS X og Linux.

Umiddelbart kunne man frygte, at det vil være nemmere at lave malware til Chrome ad denne vej, men det har Google forhindret med et dobbelt sandkasse-system. Den ene del analyserer selve koden, og den anden kigger på, hvilke handlinger som bliver foretaget.

I første omgang vil Apps lavet med Native Client kun være mulige at finde i Chrome Web Store





Gå til bund
Gravatar #1 - csstener(^,^)
18. aug. 2011 11:40
Så vil det sige man skal have en app installeret eller???
Gravatar #2 - Henr1k
18. aug. 2011 11:44
csstener (1) skrev:
Så vil det sige man skal have en app installeret eller???

Ja den app der hedder Google Chrome
Gravatar #3 - -N-
18. aug. 2011 11:44
#1 Ikke som det står skrevet.

Det lyder som et af de bedste tiltag siden WWW, webprogrammering er simpelthen den største gang kaos af forskellige typer af kode, måske dette tiltag kan gøre op med den tradition og lave én hjemmeside, ét sprog.
Gravatar #4 - onetreehell
18. aug. 2011 11:51
Suk.

Det er ikke C++ men maskinkode (svjv pt. x86 og "ARM") der køres "direkte" i en sandbox. Der er altså ikke nogen C++-fortolker i browseren -.- Derudover er C og C++ ikke det samme, selvom C++ er nogenlunde bagudkompatibel med C.

Derudover er jeg ret sikker på at det ikke udelukkende er for C og C++.

Rettelse indsendt.

#3
At gå tilbage til CPU-specifik kode gør det på ingen måde bedre.
Gravatar #5 - Windcape
18. aug. 2011 11:53
-N- (3) skrev:
Det lyder som et af de bedste tiltag siden WWW, webprogrammering er simpelthen den største gang kaos af forskellige typer af kode, måske dette tiltag kan gøre op med den tradition og lave én hjemmeside, ét sprog.
Det er ikke til webprogrammering.

Det er for at du kan lave apps/spil til Chrome. Så du kan bruge Chrome i stedet for dit OS. Det må være mest målrettet Netbooks.

Gravatar #6 - bjerh
18. aug. 2011 11:55
Så det kommer ikke til at fungere som ActiveX gør det? Altså via et object-tag... phew!
Gravatar #7 - gensplejs
18. aug. 2011 12:21
Windcape (5) skrev:
stedet for dit OS. Det må være mest målrettet Netbooks.

Yarr..Giver go mening... Primært relevant for chrome OS men jo jo det kommer da også til at virke på pc....
Gravatar #8 - cryo
18. aug. 2011 12:58
-N- (3) skrev:
Det lyder som et af de bedste tiltag siden WWW, webprogrammering er simpelthen den største gang kaos af forskellige typer af kode, måske dette tiltag kan gøre op med den tradition og lave én hjemmeside, ét sprog.


Og det sprog er så lige x86 eller x64 maskinkode; jeg ser det som et stort tilbageskridt hvis det er tænkt til generel brug. Hvis det mere er til Chrome-specifikke apps/spil etc. er det vel fint.

Men det er godt nok den forkerte vej, mens verden ellers går mod managed sprog og maskinneutral kode (som JavaScript, .NET, diverse scriptsprog etc.)
Gravatar #9 - tentakkelmonster
18. aug. 2011 13:27
Assembler direkte i browseren... bare tanken får mig til at krølle tæer.

Ikke at jeg har noget imod maskinkode (som jeg faktisk har kodet i i årevis), men det er lidt vanvittigt at lave support for det i en internet browser. Må lige læse nærmere om det her når jeg kommer hjem til min egen computer, og har bedre tid...
Gravatar #10 - Petrander
18. aug. 2011 14:32
tentakkelmonster (9) skrev:
Assembler direkte i browseren... bare tanken får mig til at krølle tæer. Ikke at jeg har noget imod maskinkode (som jeg faktisk har kodet i i årevis)...


Så undrer det mig, at du sidestiller assemblersprog med maskinkode. Assemblersprog er lige et niveau over maskinkode, går jeg ud fra du godt ved???

Gravatar #11 - -N-
18. aug. 2011 16:48
#4+8 Når det skal afvikles i browseren er det vel ikke et tilbageskridt, og det bliver vel ikke OS el. CPU specifikt.

Der står jo, at den har en speciel kompiler.

Hvis det er rettet til netbooks som i fremtiden både vil være risc og x86, så er tanken vil netop, at det skal være CPU og OS uafhængigt.
Gravatar #12 - arne_v
18. aug. 2011 16:50
#11

Native antyder ligesom at det er CPU specifikt.
Gravatar #13 - ty
18. aug. 2011 17:35
http://code.google.com/chrome/nativeclient/docs/te...

Native Client modules are operating system independent, but they are not (yet) processor independent. Therefore, you must compile separate versions of a Native Client module for x86-32-bit, x86-64-bit, and other instruction sets.
Gravatar #14 - kasperd
18. aug. 2011 23:22
Jeg har aldrig kigget på koden, men så vidt jeg ved er den første validering af koden meget lig den der foretages når java byte code indlæses i en VM.

Groft sagt har man defineret et instruktionssæt som er en delmængde af IA32 eller AMD64 instruktionssættet.

Nogle instruktioner er ufarlige og kan uden videre tillades. Andre er altid farlige og tillades overhovedet ikke.

Tilbage er nogle få problematiske instruktioner, som kan være farlige afhængige af kontekst. Man kan ikke bare tillade dem, og på den anden side kan man heller ikke helt undvære dem.

Der har man så defineret en enkelt ny instruktion som består af en kombination af to native instruktioner hvoraf den ene ikke er ufarlig i sig selv.

Det vil sige at kodevalideringen ser dette som en enkelt ufarlig instruktion. Men CPUen vil afvikle det som to instruktioner.

I princippet giver denne validering i sig selv altså samme sikkerhed som den validering der foregår af java kode. En fejl i validering af java byte code kunne tillade kode at beskadige JVM datastrukturerne, og koden kan dermed overtage kontrollen over JVM. En fejl i valideringen af NaCl kode kunne tillade kode at afvikle usikre instruktioner og på den måde bryde ud af det første niveau af sandkasse.

Det vil sige at sikkerhedsmæssigt NaCl og JVM instruktionssættene altså lige gode. På performance har NaCl en fordel. På fleksibilitet og portabilitet har JVM en fordel. Til gengæld skulle C og C++ compilerne gøre det muligt at compilere eksisterende kildekode og bruge det i NaCl.

Man kan også compilere andre sprog til NaCl eller for den sags skyld skrive maskinkode direkte. Man skal blot vide hvad valideringen tillader.
Gravatar #15 - arne_v
28. aug. 2011 03:05
kasperd (14) skrev:
Det vil sige at sikkerhedsmæssigt NaCl og JVM instruktionssættene altså lige gode.


Teoretisk ja.

I praksis må man antage at NaCl i 2026 er lige så sikker som JVM i 2011 (15 års erfaring med at få ideen implementeret korrekt).
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login