wasm3, en WebAssembly-tolk släpper sin första version

W3

nyligen den första versionen av wasm3 släpptes, vilket är en tolk mycket snabbt av mellanliggande kod av WebAssemblyDet är främst utformat för att köra WebAssembly-applikationer på mikrokontroller och plattformar för vilka det inte finns någon JIT-implementering för WebAssembly, det finns inte tillräckligt med minne för att JIT ska fungera eller skapande av körbara minnessidor som krävs för JIT-implementering.

För de som inte känner till WebAssembly bör du veta att detta är ett lågnivåspråk, ursprungligen utformad som ett målformat när man kompilerar från C och C ++, även om det också stöder källkod för andra språk, som Rust och Go. Detta bärbara binära kodformat används för fullständig körning av skript från webbläsaren på klienten.

Om wasm3

Wasm3 klarar kompatibilitetstester med WebAssembly 1.0-specifikationen och kan användas för att köra många WASI-applikationer, ger bara 4-5 gånger lägre prestanda än JIT-motorer och 11.5 gånger lägre än exekvering av inbyggd kod.

Jämfört med andra artister från WebAssembly (wac, life, wasm-micro-runtime), wasm3 var 15.8 gånger snabbare.

Wasm3 startade som ett forskningsprojekt och fortsätter att vara det på många sätt. Utvärdering av motorn i olika miljöer är en del av utredningen. Eftersom vi har Lua, JS, Python, Lisp, (...) på MCU, är WebAssembly faktiskt ett lovande alternativ. Det ger en helt isolerad, väldefinierad och förutsägbar miljö. Bland de praktiska användningsfallet kan vi lista avancerad databehandling, skript, körning av IoT-regel, blockchain-kontrakt etc.

Wasm3 kräver 64Kb minne för kod och 10Kb RAM, vad du gör det möjligt att använda projektet för att köra kompilerade applikationer i WebAssembly i mikrokontroller som Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), AT40ga såväl som på tavlor och datorer baserade på arkitekturer x86, x64, ARM, MIPS, RISC-V och Xtens.

Hög prestanda uppnås med Massey Meta Machine-tekniken (M3) i tolk, där, för att minska omkostnaderna för avkodning av bytecode, bytkoden översätts proaktivt i effektivare operationer som genererar pseudomaskinkod och exekveringsmodellen för den staplade virtuella maskinen blir en mer effektiv registerfokusoperationer i M3 är C-funktioner, vars argument är den virtuella maskinens register, vilket kan återspeglas i CPU-registren .

Frekventa arbetsflöden för optimering förvandlas till sammanfattande operationer.

Dessutom, Resultaten av studien kan ses på WebAssembly on the Web, efter att ha analyserat 948 tusen av de mest populära webbplatserna rankade av Alexa, fann forskarna WebAssembly används av 1639 0.17 webbplatser (1%), det vill säga 600 av XNUMX webbplatser.

Totalt avslöjade webbplatserna belastningen av 1950 WebAssembly-moduler, varav 150 är unika.

När man överväger omfattningen av WebAssembly drogs nedslående slutsatser: i mer än 50% av fallen användes WebAssembly för skadliga ändamål, till exempel för att bryta kryptovalutor (55,7%) och för att dölja kod från skadliga skript (0,2, XNUMX%) .

Av operativsystem som stöds för Wasm3, vi kan hitta Linux inklusive OpenWRT-baserade routrar, Windows, macOS, Android och iOS. Det var också möjligt att kompilera wasm3 i den mellanliggande WebAssembly-koden för att köra tolk i en webbläsare eller för självhantering.

Av de legitima användningarna av WebAssembly observerades biblioteksekvering (38.8%), spelskapande (3.5%) och exekvering av icke-JavaScript-inbyggd kod (0.9%). I 14,9% av fallen användes WebAssembly för att analysera miljön för användaridentifiering (fingeravtryck).

Prova wasm3

För dem som är intresserade av att kunna använda denna tolk i sitt system, kan läsa dokumentationen samt projektkoden som är skrivet i C och distribueras under MIT-licensen, I följande länk.


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.