wasm3, ein WebAssembly-Interpreter, veröffentlicht seine erste Version

W3

Kürzlich Die erste Version von wasm3 wurde veröffentlicht, welches ist ein Dolmetscher sehr schnell von Zwischencode von WebAssemblyDa es in erster Linie zum Ausführen von WebAssembly-Anwendungen auf Mikrocontrollern und Plattformen konzipiert ist, für die es keine JIT-Implementierung für WebAssembly gibt, ist nicht genügend Speicher vorhanden, damit JIT funktioniert, oder es können ausführbare Speicherseiten erstellt werden, die für die JIT-Implementierung erforderlich sind.

Für diejenigen, die mit WebAssembly nicht vertraut sind, sollten Sie wissen, dass dies der Fall ist eine einfache Sprache, Ursprünglich als Zielformat beim Kompilieren aus C und C ++ konzipiert, unterstützt es jedoch auch Quellcode für andere Sprachen wie Rust und Go. Dieses tragbare Binärcode-Format wird für die vollständige Ausführung von Skripten über den clientseitigen Browser verwendet.

Über wasm3

Wasm3 besteht Kompatibilitätstests mit der WebAssembly 1.0-Spezifikation und kann verwendet werden, um viele WASI-Anwendungen auszuführen, Es bietet nur 4-5-mal weniger Leistung als JIT-Engines und 11.5-mal weniger als native Codeausführung.

Im Vergleich zu anderen Darstellern von WebAssembly (wac, life, wasm-micro-runtime), wasm3 war 15.8 mal schneller.

Wasm3 begann als Forschungsprojekt und ist es auch in vielerlei Hinsicht. Die Bewertung des Motors in verschiedenen Umgebungen ist Teil der Untersuchung. Da Lua, JS, Python, Lisp (…) auf der MCU ausgeführt werden, ist WebAssembly eine vielversprechende Alternative. Es bietet eine vollständig isolierte, genau definierte und vorhersehbare Umgebung. Unter den praktischen Anwendungsfällen können wir modernste Datenverarbeitung, Skripterstellung, Ausführung von IoT-Regeln, Blockchain-Verträge usw. auflisten.

wasm3 benötigt 64 KB Speicher für Code und 10 KB RAM. was du ermöglicht die Verwendung des Projekts Kompilierte Anwendungen in WebAssembly ausführen in Mikrocontrollern wie Arduino MKR *, Arduino Due, Teilchenphoton, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blaue Pille (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310) sowie auf Boards und Computern, die auf Architekturen basieren x86, x64, ARM, MIPS, RISC-V und Xtens.

Hohe Leistung wird durch die Verwendung der Massey Meta Machine-Technik erreicht (M3) im Dolmetscher, in dem, um den Aufwand für die Dekodierung des Bytecodes zu verringern, der Bytecode wird proaktiv übersetzt Bei effizienteren Operationen, die Pseudomaschinencode erzeugen und das Ausführungsmodell der gestapelten virtuellen Maschine zu einem effizienteren Registeransatz wird, sind die Operationen in M3 C-Funktionen, deren Argumente die Register der virtuellen Maschine sind, die sich in der CPU widerspiegeln können Register.

Häufige Workflows zur Optimierung werden zu Zusammenfassungsvorgängen.

Zusätzlich Die Ergebnisse der Studie können bei WebAssembly im Internet beobachtet werden, nachdem die Forscher 948 der beliebtesten von Alexa bewerteten Websites analysiert hatten WebAssembly wird von 1639 Sites (0.17%) verwendet, dh 1 von 600 Sites.

Insgesamt enthüllten die Websites die Last von 1950 WebAssembly-Modulen, von denen 150 einzigartig sind.

Bei der Betrachtung des Umfangs von WebAssembly wurden enttäuschende Schlussfolgerungen gezogen: In mehr als 50% der Fälle wurde WebAssembly für böswillige Zwecke verwendet, um beispielsweise Kryptowährungen abzubauen (55,7%) und Code vor böswilligen Skripten zu verbergen (0,2, XNUMX%). .

Von unterstützten Betriebssystemen für Wasm3, wir können Linux finden einschließlich OpenWRT-basierter Router, Windows, MacOS, Android und iOS. Es war auch möglich, wasm3 in den WebAssembly-Zwischencode zu kompilieren, um den Interpreter in einem Browser auszuführen oder sich selbst zu hosten.

Von den legitimen Verwendungen von WebAssembly wurden die Ausführung von Bibliotheken (38.8%), die Erstellung von Spielen (3.5%) und die Ausführung von nativem Nicht-JavaScript-Code (0.9%) beobachtet. In 14,9% der Fälle wurde WebAssembly verwendet, um die Umgebung auf Benutzeridentifikation (Fingerabdrücke) zu analysieren.

Versuchen Sie wasm3

Für diejenigen, die daran interessiert sind, diesen Interpreter in ihrem System verwenden zu können, kann die Dokumentation sowie den Projektcode einsehen die in C geschrieben und unter der MIT-Lizenz vertrieben wird, im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.