wasm3, tumač WebAssembly izdaje svoju prvu verziju

W3

Nedavno objavljena je prva verzija wasm3, koji je tumač vrlo brzo srednjeg koda od WebAssemblyBudući da je dizajniran prvenstveno za pokretanje aplikacija WebAssembly na mikrokontrolerima i platformama za koje ne postoji JIT implementacija za WebAssembly, nema dovoljno memorije za rad JIT-a ili stvaranje izvršnih memorijskih stranica potrebnih za JIT implementaciju.

Za one koji nisu upoznati sa WebAssembly-om, trebali biste znati da je to jezik niskog nivoa, inicijalno dizajniran kao ciljni format prilikom kompajliranja sa C i C ++, iako podržava i izvorni kod za druge jezike, poput Rust and Go. Ovaj prijenosni format binarnog koda koristi se za potpuno izvršavanje skripti iz preglednika na strani klijenta.

O wasm3

Wasm3 prolazi testove kompatibilnosti sa WebAssembly 1.0 specifikacijom i može se koristiti za pokretanje mnogih WASI aplikacija, pružajući samo 4-5 puta manje performanse od JIT motora i 11.5 puta niže od izvršenja izvornog koda.

U poređenju sa ostalim izvođačima iz WebAssembly (wac, život, wasm-micro-runtime), wasm3 je bio 15.8 puta brži.

Wasm3 je započeo kao istraživački projekt i nastavlja biti na mnogo načina. Procjena motora u različitim okruženjima dio je istrage. Budući da Lua, JS, Python, Lisp, (…) rade na MCU-u, WebAssembly je zapravo obećavajuća alternativa. Pruža potpuno izolirano, dobro definirano i predvidljivo okruženje. Među slučajeve praktične upotrebe možemo navesti vrhunsko računanje, skriptiranje, izvršavanje IoT pravila, blockchain ugovore itd.

wasm3 zahtijeva 64 KB memorije za kôd i 10 KB RAM-a, šta ti omogućava korištenje projekta za pokretanje kompajliranih aplikacija u WebAssembly u mikrokontrolere poput Arduino MKR *, Arduino Due, Fotoni čestica, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Plava tableta (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), ATCEgaga40 kao i na pločama i računarima zasnovanim na arhitekturama x86, x64, ARM, MIPS, RISC-V i Xtens.

Visoke performanse postižu se tehnikom Massey Meta Machine (M3) u prevodiocu, u kojem, kako bi se smanjio opseg dekodiranja bajtkoda, bytecode proaktivno je prevedeno u efikasnijim operacijama koje generiraju pseudo-mašinski kod i model izvršenja naslagane virtualne mašine postaje efikasniji pristup registru, operacije u M3 su funkcije C, čiji su argumenti registri virtualne mašine, što se može odraziti na CPU registri.

Česti tokovi posla za optimizaciju pretvaraju se u sažete operacije.

Takođe, Rezultati studije mogu se promatrati na WebAssembly on the Web, nakon analize 948 hiljada najpopularnijih web lokacija koje je Alexa ocijenila, istraživači su otkrili da WebAssembly koristi 1639 web lokacija (0.17%), odnosno 1 na 600 web lokacija.

Ukupno su web stranice otkrile puno 1950 modula WebAssembly, od kojih je 150 jedinstvenih.

Kada se razmatra opseg WebAssembly-a, izvučeni su razočaravajući zaključci: u više od 50% slučajeva WebAssembly je korišten u zlonamjerne svrhe, na primjer za miniranje kriptovaluta (55,7%) i za sakrivanje koda od zlonamjernih skripti (0,2, XNUMX%) .

Od podržanih operativnih sistema za Wasm3, možemo pronaći Linux uključujući rutere zasnovane na OpenWRT, Windows, macOS, Android i iOS. Također je bilo moguće kompajlirati wasm3 u srednji kôd WebAssembly za pokretanje tumača u pregledniku ili za samo-hosting.

Od legitimne upotrebe WebAssembly-a, primijećeno je izvršavanje biblioteke (38.8%), stvaranje igara (3.5%) i izvršavanje izvornog koda koji nije JavaScript (0.9%). U 14,9% slučajeva WebAssembly je korišten za analizu okruženja za identifikaciju korisnika (otisci prstiju).

Pokušajte wasm3

Za one koje zanima mogućnost korištenja ovog tumača u njihovom sistemu, mogu pogledati dokumentaciju kao i projektni kod koji je napisan na C i distribuiran pod MIT licencom, Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.