wasm3, een WebAssembly-interpreter, brengt zijn eerste versie uit

W3

onlangs, de eerste versie van wasm3 werd uitgebracht, dat is een tolk erg snel van tussenliggende code door WebAssembly, omdat het in de eerste plaats is ontworpen om WebAssembly-applicaties uit te voeren op microcontrollers en platforms waarvoor geen JIT-implementatie voor WebAssembly is, onvoldoende geheugen om JIT te laten werken, of het maken van uitvoerbare geheugenpagina's die nodig zijn voor JIT-implementatie.

Voor degenen die niet op de hoogte zijn van WebAssembly, moet u weten dat dit zo is een lage taal, oorspronkelijk ontworpen als een build-doelformaat van C en C ++, hoewel het ook broncode ondersteunt van andere talen, zoals Rust en Go. Dit overdraagbare binaire codeformaat wordt gebruikt voor volledige scriptuitvoering vanuit de browser aan de clientzijde.

Ongeveer wasm3

Wasm3 slaagt voor compatibiliteitstests met de WebAssembly 1.0-specificatie en kan worden gebruikt om veel WASI-applicaties uit te voeren, levert slechts 4-5 keer minder prestaties dan JIT-engines en 11.5 keer minder dan native code-uitvoering.

Vergeleken met andere artiesten van WebAssembly (wac, life, wasm-micro-runtime), wasm3 was 15.8 keer sneller.

Wasm3 begon als een onderzoeksproject en is dat nog steeds op vele manieren. Evaluatie van de motor in verschillende omgevingen maakt deel uit van het onderzoek. Aangezien we Lua, JS, Python, Lisp, (…) op MCU hebben draaien, is WebAssembly eigenlijk een veelbelovend alternatief. Het biedt een volledig geïsoleerde, goed gedefinieerde en voorspelbare omgeving. Onder de praktische use-cases kunnen we geavanceerde computing, scripting, uitvoering van IoT-regels, blockchain-contracten, enz. Noemen.

wasm3 vereist 64Kb geheugen voor code en 10Kb RAM, wat jij maakt het mogelijk om het project te gebruiken om gecompileerde applicaties in WebAssembly uit te voeren in microcontrollers zoals Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) en ATmega1284 XNUMX, evenals op borden en computers op basis van architecturen x86, x64, ARM, MIPS, RISC-V en Xtens.

Hoge prestaties worden bereikt door gebruik te maken van de Massey Meta Machine-techniek (M3) in de tolk, waarin, om de overhead van het decoderen van de bytecode te verminderen, de bytecode wordt proactief vertaald bij efficiëntere bewerkingen die pseudo-machinecode genereren en het uitvoeringsmodel van de gestapelde virtuele machine een efficiëntere registerbenadering wordt, zijn de bewerkingen in M3 C-functies, waarvan de argumenten de registers van de virtuele machine zijn, die kunnen worden gespiegeld in de CPU-registers.

Frequente workflows voor optimalisatie veranderen in samenvattende bewerkingen.

Bovendien heeft Studieresultaten zijn te zien op WebAssembly on the Web, na analyse van 948 van de meest populaire Alexa-geclassificeerde sites, ontdekten onderzoekers dat WebAssembly wordt gebruikt door 1639 sites (0.17%), of 1 op de 600 sites.

In totaal onthulden de websites de upload van 1950 WebAssembly-modules, waarvan er 150 uniek zijn.

Bij het overwegen van de reikwijdte van WebAssembly werden teleurstellende conclusies getrokken: in meer dan 50% van de gevallen werd WebAssembly gebruikt voor kwaadwillende doeleinden, bijvoorbeeld om cryptocurrency te minen (55,7%) en om kwaadaardige scriptcode te verbergen (0,2%).

Van ondersteunde besturingssystemen voor Wasm3, we kunnen Linux vinden inclusief op OpenWRT gebaseerde routers, Windows, macOS, Android en iOS. Het was ook mogelijk om wasm3 te compileren in tussenliggende WebAssembly-code om de interpreter in een browser uit te voeren of voor zelfhosting.

Van het legitieme gebruik van WebAssembly zagen we het uitvoeren van de bibliotheek (38.8%), het maken van games (3.5%) en het uitvoeren van geschreven native code die niet in JavaScript is geschreven (0.9%). In 14,9% van de gevallen werd WebAssembly gebruikt om de omgeving te scannen op gebruikersidentificatie (vingerafdrukken).

Probeer wasm3

Voor degenen die geïnteresseerd zijn om deze tolk in hun systeem te kunnen gebruiken, kan zowel de documentatie als de projectcode raadplegen die is geschreven in C en verspreid onder de MIT-licentie, In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.