wasm3, un interpret WebAssembly lansează prima sa versiune

W3

Recent, a fost lansată prima versiune a wasm3, care este un interpret foarte rapid de cod intermediar de WebAssemblyEste conceput în principal pentru a rula aplicații WebAssembly pe microcontrolere și platforme pentru care nu există implementare JIT pentru WebAssembly, nu există suficientă memorie pentru ca JIT să funcționeze sau crearea de pagini de memorie executabile necesare pentru implementarea JIT.

Pentru cei care nu sunt familiarizați cu WebAssembly, ar trebui să știți că acesta este un limbaj de nivel scăzut, conceput inițial ca format țintă la compilarea din C și C ++, deși acceptă și codul sursă pentru alte limbi, cum ar fi Rust și Go. Acest format de cod binar portabil este utilizat pentru executarea completă a scripturilor din browserul client.

Despre wasm3

Wasm3 trece testele de compatibilitate cu specificația WebAssembly 1.0 și poate fi folosit pentru a rula multe aplicații WASI, oferind performanțe de doar 4-5 ori mai mici decât motoarele JIT și de 11.5 ori mai mici decât executarea codului nativ.

În comparație cu alți interpreți din WebAssembly (wac, life, wasm-micro-runtime), wasm3 a fost de 15.8 ori mai rapid.

Wasm3 a început ca un proiect de cercetare și continuă să fie așa din multe puncte de vedere. Evaluarea motorului în diferite medii face parte din investigație. Deoarece avem Lua, JS, Python, Lisp, (...) care rulează pe MCU, WebAssembly este de fapt o alternativă promițătoare. Oferă un mediu complet izolat, bine definit și previzibil. Printre cazurile practice de utilizare, putem enumera calcule de ultimă oră, scriptare, executarea regulilor IoT, contracte blockchain etc.

wasm3 necesită 64Kb de memorie pentru cod și 10Kb de RAM, ce tu permite utilizarea proiectului pentru a rula aplicații compilate în WebAssembly în microcontrolere precum Arduino MKR *, Arduino Due, Photon de particule, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), AT40ga5 , precum și pe plăci și computere bazate pe arhitecturi x86, x64, ARM, MIPS, RISC-V și Xtens.

Performanță ridicată este obținută prin utilizarea tehnicii Massey Meta Machine (M3) în interpret, în care, pentru a reduce cheltuielile generale de decodare a bytecodului, codul secundar este tradus proactiv în operații mai eficiente care generează cod pseudo-mașină și modelul de execuție al mașinii virtuale stivuite devine un registru mai eficient operațiunile de focalizare în M3 sunt funcții C, ale căror argumente sunt registrele mașinii virtuale, care pot fi reflectate în registrele CPU.

Fluxurile de lucru frecvente pentru optimizare sunt transformate în operații de sinteză.

În plus, Rezultatele studiului pot fi observate la WebAssembly pe Web, după ce au analizat 948 mii dintre cele mai populare site-uri evaluate de Alexa, cercetătorii au descoperit că WebAssembly este utilizat în 1639 de site-uri (0.17%), adică 1 din 600 de site-uri.

În total, site-urile web au dezvăluit încărcarea a 1950 module WebAssembly, dintre care 150 sunt unice.

Când s-a luat în considerare domeniul WebAssembly, s-au tras concluzii dezamăgitoare: în mai mult de 50% din cazuri, WebAssembly a fost utilizat în scopuri rău intenționate, de exemplu pentru extragerea criptomonedelor (55,7%) și pentru a ascunde codul de scripturile rău intenționate , 0,2%).

Din sistemele de operare acceptate pentru Wasm3, putem găsi Linux inclusiv routere bazate pe OpenWRT, Windows, macOS, Android și iOS. De asemenea, a fost posibil să se compileze wasm3 în codul WebAssembly intermediar pentru a rula interpretul într-un browser sau pentru auto-găzduire.

Dintre utilizările legitime ale WebAssembly, s-au observat execuția bibliotecii (38.8%), crearea jocului (3.5%) și executarea codului nativ non-JavaScript (0.9%). În 14,9% din cazuri, WebAssembly a fost utilizat pentru a analiza mediul pentru identificarea utilizatorului (amprente).

Încercați wasm3

Pentru cei care sunt interesați să poată utiliza acest interpret în sistemul lor, poate consulta documentația, precum și codul proiectului care este scris în C și distribuit sub licența MIT, În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.