wasm3, WebAssembly-tulkki julkaisee ensimmäisen versionsa

W3

äskettäin ensimmäinen versio wasm3: sta julkaistiin, mikä on tulkki erittäin nopea välikoodi kirjoittanut WebAssemblySe on suunniteltu ensisijaisesti suorittamaan WebAssembly-sovelluksia mikrokontrollereissa ja alustoilla, joille ei ole JIT-toteutusta WebAssembly-sovellukseen, JIT: n toimintaan ei ole tarpeeksi muistia tai JIT-toteutukseen tarvittavien suoritettavien muistisivujen luominen.

Niille, jotka eivät tunne WebAssembly-sovellusta, sinun on tiedettävä, että näin on matalan tason kieli, Alun perin suunniteltu kohdemuodoksi käännettäessä C: stä ja C ++: sta, vaikka se tukee myös lähdekoodia muille kielille, kuten Rust and Go. Tätä kannettavaa binaarikoodimuotoa käytetään komentosarjojen täydelliseen suorittamiseen asiakaspuolen selaimesta.

Tietoja wasm3: sta

Wasm3 läpäisee yhteensopivuustestit WebAssembly 1.0 -määrityksen ja voidaan käyttää monien WASI-sovellusten suorittamiseen, tarjoaa vain 4-5 kertaa vähemmän suorituskykyä kuin JIT-moottorit ja 11.5 kertaa vähemmän kuin alkuperäisen koodin suorittaminen.

Verrattuna muihin esiintyjiin WebAssembly-ohjelmasta (wac, life, wasm-micro-runtime), wasm3 oli 15.8 kertaa nopeampi.

Wasm3 aloitti tutkimusprojektina ja on edelleen monin tavoin. Moottorin arviointi eri ympäristöissä on osa tutkimusta. Koska meillä on Lua, JS, Python, Lisp (()) käynnissä MCU: lla, WebAssembly on itse asiassa lupaava vaihtoehto. Se tarjoaa täysin eristetyn, hyvin määritellyn ja ennustettavan ympäristön. Käytännön käyttötapauksista voimme luetella huippuluokan laskennan, komentosarjat, IoT-sääntöjen suorittamisen, blockchain-sopimukset jne.

wasm3 vaatii 64 kt muistia koodille ja 10 kt RAM, mitä sinä sallii projektin käytön suorittaa koottuja sovelluksia WebAssembly-sovelluksessa mikrokontrollereissa, kuten Arduino MKR *, Arduino Due, hiukkasfoton, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 sininen pilleri (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), E40, E5) samoin kuin levyillä ja arkkitehtuureihin perustuvilla tietokoneilla x86, x64, ARM, MIPS, RISC-V ja Xtens.

Korkea suorituskyky saavutetaan käyttämällä Massey Meta Machine -tekniikkaa (M3) tulkissa, jossa vähentää tavukoodin purkamisen yleiskustannuksia, tavukoodi käännetään ennakoivasti tehokkaammissa toiminnoissa, jotka muodostavat näennäiskoneen koodin ja pinotun virtuaalikoneen suoritusmallista tulee tehokkaampi rekisterilähestymistapa, toiminnot M3 ovat C-funktioita, joiden argumentit ovat virtuaalikoneen rekistereitä, jotka voidaan heijastaa CPU-rekistereissä.

Usein käytettävät työnkulut optimointia varten muutetaan yhteenvetotoimiksi.

Lisäksi, Tutkimuksen tulokset voidaan havaita WebAssembly on the Web -palvelussa tutkittuaan 948 tuhatta Alexan suosittelemaa suosituinta sivustoa. WebAssembly-järjestelmää käyttää 1639 sivustoa (0.17%), mikä on yksi 1 sivustosta.

Sivustot paljastivat yhteensä 1950 WebAssembly-moduulin kuormituksen, joista 150 on ainutlaatuisia.

Kun tarkastellaan WebAssemble-sovelluksen laajuutta, tehtiin pettymys: yli 50 prosentissa tapauksista WebAssemble-ohjelmaa käytettiin haitallisiin tarkoituksiin, esimerkiksi kryptovaluuttojen louhintaan (55,7%) ja koodin piilottamiseen haittaohjelmilta (0,2 (XNUMX%).

Tuetuista käyttöjärjestelmistä mallille Wasm3, voimme löytää Linuxin mukaan lukien OpenWRT-pohjaiset reitittimet, Windows, macOS, Android ja iOS. Oli myös mahdollista koota wasm3 WebAssembly-välikoodiin tulkin suorittamiseksi selaimessa tai itsepalvelua varten.

WebAssemblyn laillisista käyttötarkoituksista havaittiin kirjaston toteutus (38.8%), pelin luominen (3.5%) ja ei-JavaScript-natiivikoodin suorittaminen (0.9%). 14,9 prosentissa tapauksista WebAssemble-toimintoa käytettiin ympäristön tunnistamiseen käyttäjien tunnistamiseksi (sormenjäljet).

Kokeile wasm3

Niille, jotka ovat kiinnostuneita käyttämään tätä tulkkia järjestelmässään, voi tutustua dokumentaatioon ja projektikoodiin joka on kirjoitettu C-muodossa ja jaettu MIT-lisenssillä, Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.