wasm3, interpreter WebAssembly wypuszcza swoją pierwszą wersję

W3

Ostatnio została wydana pierwsza wersja wasm3, który jest tłumacz bardzo szybki kod pośredni przez WebAssemblyPonieważ jest przeznaczony głównie do uruchamiania aplikacji WebAssembly na mikrokontrolerach i platformach, dla których nie ma implementacji JIT dla WebAssembly, nie ma wystarczającej ilości pamięci do działania JIT lub tworzenia wykonywalnych stron pamięci wymaganych do implementacji JIT.

Dla tych, którzy nie są zaznajomieni z WebAssembly, powinieneś wiedzieć, że to jest język niskiego poziomu, początkowo zaprojektowany jako format docelowy podczas kompilacji z C i C ++, chociaż obsługuje również kod źródłowy dla innych języków, takich jak Rust i Go. Ten przenośny format kodu binarnego służy do pełnego wykonywania skryptów z przeglądarki po stronie klienta.

O wasm3

Wasm3 przechodzi testy kompatybilności ze specyfikacją WebAssembly 1.0 i może być używany do uruchamiania wielu aplikacji WASI, zapewnia tylko 4-5 razy mniejszą wydajność niż silniki JIT i 11.5 razy mniej niż wykonanie kodu natywnego.

W porównaniu z innymi wykonawcami z WebAssembly (wac, life, wasm-micro-runtime), wasm3 był 15.8 razy szybszy.

Wasm3 powstał jako projekt badawczy i nadal nim jest na wiele sposobów. Ocena silnika w różnych środowiskach jest częścią badania. Ponieważ mamy Lua, JS, Python, Lisp, (…) działające na MCU, WebAssembly jest w rzeczywistości obiecującą alternatywą. Zapewnia całkowicie odizolowane, dobrze zdefiniowane i przewidywalne środowisko. Wśród praktycznych zastosowań możemy wymienić najnowocześniejsze technologie komputerowe, skrypty, wykonywanie reguł IoT, kontrakty blockchain itp.

wasm3 wymaga 64 kb pamięci na kod i 10 kb pamięci RAM, co ty umożliwia korzystanie z projektu do uruchamiania skompilowanych aplikacji w WebAssembly w mikrokontrolerach, takich jak Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), AT40ga5 (ICE1284gaXNUMX) , a także na płytach i komputerach opartych na architekturach x86, x64, ARM, MIPS, RISC-V i Xtens.

Wysoką wydajność osiągnięto dzięki zastosowaniu techniki Massey Meta Machine (M3) w tłumaczu, w którym aby zmniejszyć obciążenie związane z dekodowaniem kodu bajtowego, kod bajtowy jest aktywnie tłumaczone w bardziej wydajnych operacjach generujących pseudo-maszynowy kod i model wykonania skumulowanej maszyny wirtualnej staje się bardziej wydajnym podejściem rejestrowym operacje w M3 są funkcjami C, których argumentami są rejestry maszyny wirtualnej, co można odzwierciedlić w rejestrach CPU.

Częste przepływy pracy w celu optymalizacji zamieniają się w operacje podsumowujące.

Ponadto, Wyniki badania można obserwować na WebAssembly w sieci, po przeanalizowaniu 948 tysięcy najpopularniejszych witryn ocenianych przez Alexę, naukowcy stwierdzili, że Z WebAssembly korzysta 1639 witryn (0.17%), czyli 1 na 600 witryn.

W sumie strony internetowe ujawniły obciążenie 1950 modułów WebAssembly, z czego 150 jest unikalnych.

Rozważając zakres WebAssembly wyciągnięto rozczarowujące wnioski: w ponad 50% przypadków WebAssembly był używany do złośliwych celów, na przykład do wydobywania kryptowalut (55,7%) i do ukrywania kodu przed złośliwymi skryptami (0,2 , XNUMX%).

Obsługiwanych systemów operacyjnych dla Wasm3, możemy znaleźć Linuksa w tym routery oparte na OpenWRT, Windows, macOS, Android i iOS. Możliwe było również wkompilowanie wasm3 do pośredniego kodu WebAssembly, aby uruchomić interpreter w przeglądarce lub na własny hosting.

Spośród uzasadnionych zastosowań WebAssembly, wykonywania bibliotek (38.8%), tworzenia gier (3.5%) i wykonywania kodu natywnego innego niż JavaScript (0.9%). W 14,9% przypadków do analizy środowiska pod kątem identyfikacji użytkownika (odcisków palców) wykorzystano WebAssembly.

Spróbuj wasm3

Dla tych, którzy są zainteresowani możliwością korzystania z tego tłumacza w swoim systemie, może zapoznać się z dokumentacją oraz kodem projektu który jest napisany w C i rozpowszechniany na licencji MIT, W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.