wasm3, en WebAssembly-tolk frigiver sin første version

W3

For nylig, den første version af wasm3 blev frigivet, som er en tolk meget hurtig af mellemliggende kode af WebAssemblyDa det primært er designet til at køre WebAssembly-applikationer på mikrocontrollere og platforme, for hvilke der ikke er nogen JIT-implementering til WebAssembly, er der ikke nok hukommelse til, at JIT kan fungere, eller oprettelse af eksekverbare hukommelsessider, der kræves til JIT-implementering.

For dem, der ikke er bekendt med WebAssembly, skal du vide, at dette er tilfældet et lavt niveau sprog oprindeligt designet som et målformat ved kompilering fra C og C ++, selvom det også understøtter kildekode til andre sprog, såsom Rust og Go. Dette bærbare binære kodeformat bruges til fuld udførelse af scripts fra browseren på klientsiden.

Om wasm3

Wasm3 består kompatibilitetstest med WebAssembly 1.0 specifikationen og kan bruges til at køre mange WASI-applikationer, leverer kun 4-5 gange lavere ydelse end JIT-motorer og 11.5 gange lavere end udførelse af native-kode.

Sammenlignet med andre kunstnere fra WebAssembly (wac, life, wasm-micro-runtime), wasm3 var 15.8 gange hurtigere.

Wasm3 startede som et forskningsprojekt og fortsætter med at være det på mange måder. Evaluering af motoren i forskellige miljøer er en del af undersøgelsen. Da vi har Lua, JS, Python, Lisp, (...) kørende på MCU, er WebAssembly faktisk et lovende alternativ. Det giver et helt isoleret, veldefineret og forudsigeligt miljø. Blandt de praktiske brugssager kan vi liste over banebrydende computing, scripting, IoT-regeludførelse, blockchain-kontrakter osv.

Wasm3 kræver 64 KB hukommelse til kode og 10 KB RAM, hvad du gør det muligt at bruge projektet at køre kompilerede applikationer i WebAssembly i mikrocontrollere som Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), AT40ga samt på tavler og computere baseret på arkitekturer x86, x64, ARM, MIPS, RISC-V og Xtens.

Høj ydeevne opnås ved hjælp af Massey Meta Machine-teknikken (M3) i tolken, hvor, for at reducere omkostningerne ved afkodning af bytekoden, bytekoden oversættes proaktivt i mere effektive operationer, der genererer pseudomaskinkode, og udførelsesmodellen for den stablede virtuelle maskine bliver en mere effektiv registertilgang, er operationerne i M3 C-funktioner, hvis argumenter er registre for den virtuelle maskine, som kan reflekteres i CPU'en registre.

Hyppige arbejdsgange til optimering bliver til opsummerende operationer.

Derudover Resultaterne af undersøgelsen kan observeres på WebAssembly på nettet efter at have analyseret 948 tusind af de mest populære websteder bedømt af Alexa, fandt forskerne, at WebAssembly bruges af 1639 steder (0.17%), det vil sige 1 ud af 600 websteder.

I alt afslørede webstederne belastningen af ​​1950 WebAssembly-moduler, hvoraf 150 er unikke.

Når man overvejer omfanget af WebAssembly, blev der trukket skuffende konklusioner: I mere end 50% af tilfældene blev WebAssembly brugt til ondsindede formål, for eksempel til at udvinde kryptokurver (55,7%) og til at skjule kode fra ondsindede scripts (0,2, XNUMX%) .

Af understøttede operativsystemer til Wasm3, vi kan finde Linux inklusive OpenWRT-baserede routere, Windows, macOS, Android og iOS. Det var også muligt at kompilere wasm3 i den mellemliggende WebAssembly-kode for at køre tolken i en browser eller til selvhosting.

Af de legitime anvendelser af WebAssembly blev biblioteksudførelse (38.8%), spiloprettelse (3.5%) og ikke-JavaScript-indfødt kodeudførelse (0.9%) observeret. I 14,9% af tilfældene blev WebAssembly brugt til at analysere miljøet til brugeridentifikation (fingeraftryk).

Prøv wasm3

For dem der er interesserede i at kunne bruge denne tolk i deres system, kan se dokumentationen såvel som projektkoden som er skrevet i C og distribueret under MIT-licensen, I det følgende link.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.