Lover mye kraftigere webapps til mobiler

Googles Native Client gjøres tilgjengelig for flere plattformer.

Google er ingen stor tilhenger av nettleserplugins, men ser likevel nødvendigheten av å kunne tilby webutviklere funksjonalitet som ikke støttes direkte av dagens nettlesere.

En av disse pluginene er Native Client (NaCl), som gjør det mulig å kjøre systemspesifikk kode inne i et lukket system (sandkasse) i tilknytning til en nettleser. Den gir webapplikasjoner mer direkte tilgang til datamaskinens regnekraft, slik at webapplikasjonen kan brukes til å utføre tyngre oppgaver enn det som er praktisk mulig med for eksempel JavaScript.

Så langt har NaCl kun støttet prosessorer med 32-bits x86-arkitektur og operativsystemene Windows, Mac OS X og Linux, men i dette blogginnlegget kunngjør Brad Chen i Googles Native Client-team at det nå er mulig å kjøre NaCl-binærkode på alle de mest populære prosessorarkitekturene, det vil si x86-32, x86-64 og ARM. Den sistnevnte benyttes av de fleste smartmobiler.

- En av de viktigste prinsippene til weben, er flyttbarhet. Det vil si at en webside presenteres og oppfører seg på samme måte, uavhengig av nettleserens operativsystem eller typen av maskinvare den kjøres på, skriver Chen.

Han mener dog at det ikke er tilstrekkelig bare å kunne kjøre på dagens mest populære arkitekturer.

- Hvis en ny prosessorarkitektur dukker opp, bør den kunne kjøre alle Native Client-moduler som allerede har blitt utgitt, uten at utviklerne må kompilere koden sin på nytt. Derfor utvikler vi også teknologi som vil gjøre det mulig for utviklere å distribuere en flyttbar representasjon av Native Client-programmer ved å benytte LLVM-bitkode (Low-Level Virtual Machine), skriver Chen.

Flytdiagram som viser trinnene mellom kildekode og kjørbar NaCl-kode for Portable Native Client-programvare-
Flytdiagram som viser trinnene mellom kildekode og kjørbar NaCl-kode for Portable Native Client-programvare- Bilde: Google

Ved å benytte denne teknologien skal en nettleser, uavhengig av hvilken prosessor den kjøres på, kunne oversette den flyttbare representasjonen til systemspesifikk binærkode, uten å måtte ha tilgang til kildekode til programmet.

Denne tilnærmingen kaller Google for PNaCl (Portable Native Client), som er beskrevet nærmere i dette dokumentet.

Ifølge Googles egne, tidlige tester kan NaCl-applikasjoner kjøres med bare 3 til 10 prosent redusert ytelse, sammenlignet med vanlige, systemspesifikke applikasjoner. Den reduserte ytelsen skyldes først og fremst Software Fault Isolation (SFI), som skal sikre at upålitelig kode i webapplikasjoner ikke skal kunne gjøre større skade. Det hele er beskrevet i dette dokumentet.

    Les også:

Til toppen