wasm3, інтерпретатор WebAssembly випускає свою першу версію

W3

Нещодавно була випущена перша версія wasm3, який є перекладач дуже швидко проміжного коду від WebAssemblyОскільки він призначений для запуску додатків WebAssembly на мікроконтролерах та платформах, для яких немає реалізації JIT для WebAssembly, недостатньо пам'яті для роботи JIT або створення виконуваних сторінок пам'яті, необхідних для реалізації JIT.

Для тих, хто не знайомий з WebAssembly, ви повинні знати, що це так мова низького рівня, спочатку розроблений як цільовий формат при компіляції з C та C ++, хоча він також підтримує вихідний код для інших мов, таких як Rust and Go. Цей портативний формат двійкового коду використовується для повного виконання сценаріїв з клієнтського браузера.

Про wasm3

Wasm3 проходить тести на сумісність зі специфікацією WebAssembly 1.0 та може використовуватися для запуску багатьох програм WASI, забезпечуючи лише в 4-5 разів меншу продуктивність, ніж движки JIT, і в 11.5 разів менше, ніж виконання власного коду.

Порівняно з іншими виконавцями від WebAssembly (wac, life, wasm-micro-runtime), wasm3 був швидшим у 15.8 рази.

Wasm3 розпочався як дослідницький проект і продовжує бути таким багатьма способами. Оцінка двигуна в різних середовищах є частиною дослідження. Оскільки у нас Lua, JS, Python, Lisp, (...) працюють на MCU, WebAssembly насправді є перспективною альтернативою. Він забезпечує повністю ізольоване, чітко визначене та передбачуване середовище. Серед практичних випадків використання ми можемо перерахувати передові обчислення, сценарії, виконання правил IoT, контракти блокчейну тощо.

wasm3 вимагає 64 Кб пам’яті для коду та 10 Кб оперативної пам’яті, що ти дозволяє використовувати проект для запуску скомпільованих програм у WebAssembly у мікроконтролерах типу Arduino MKR *, Arduino Due, Фотон частинок, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), ATCEgaga40 , а також на платах та комп’ютерах на основі архітектур x86, x64, ARM, MIPS, RISC-V та Xtens.

Висока продуктивність досягається за допомогою техніки Massey Meta Machine (M3) в інтерпретаторі, в якому, для зменшення накладних витрат на декодування байт-коду, байт-код попередньо перекладається в більш ефективних операціях, що генерують псевдо-машинний код, а модель виконання стекованої віртуальної машини стає більш ефективним підходом до регістрів, операції в M3 - це функції C, аргументи яких - це регістри віртуальної машини, які можуть бути відображені в регістрах ЦП.

Часті робочі процеси для оптимізації перетворюються на підсумкові операції.

Крім того, Результати дослідження можна спостерігати на WebAssembly on the Web, проаналізувавши 948 тисяч найпопулярніших сайтів за рейтингом Alexa, дослідники виявили, що WebAssembly використовують 1639 веб-сайтів (0.17%), тобто 1 з 600 веб-сайтів.

Загалом веб-сайти виявили навантаження 1950 модулів WebAssembly, з яких 150 унікальних.

При розгляді сфери використання WebAssembly були зроблені невтішні висновки: у понад 50% випадків WebAssembly використовувався у зловмисних цілях, наприклад, для видобутку криптовалют (55,7%) та для приховування коду від шкідливих скриптів (0,2 , XNUMX%).

З підтримуваних операційних систем для Wasm3, ми можемо знайти Linux включаючи маршрутизатори на основі OpenWRT, Windows, macOS, Android та iOS. Також можна було скомпілювати wasm3 в проміжний код WebAssembly, щоб запустити інтерпретатор у браузері або для самостійного розміщення.

З легальних застосувань WebAssembly спостерігалось виконання бібліотеки (38.8%), створення ігор (3.5%) та виконання коду, що не є кодом JavaScript (0.9%). У 14,9% випадків WebAssembly використовували для аналізу середовища для ідентифікації користувачів (відбитки пальців).

Спробуйте wasm3

Для тих, хто зацікавлений у можливості використовувати цей перекладач у своїй системі, можете ознайомитися з документацією, а також з кодом проекту який написаний мовою C та розповсюджується за ліцензією MIT, У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.