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

W3

В последнее время, выпущена первая версия wasm3, который переводчик очень быстрый промежуточный код от WebAssemblyПоскольку он предназначен в первую очередь для запуска приложений WebAssembly на микроконтроллерах и платформах, для которых нет реализации JIT для WebAssembly, не хватает памяти для работы JIT или создания исполняемых страниц памяти, необходимых для реализации JIT.

Тем, кто не знаком с WebAssembly, следует знать, что это язык низкого уровня, изначально задуман как целевой формат при компиляции из C и C ++, хотя он также поддерживает исходный код для других языков, таких как Rust и 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 на самом деле является многообещающей альтернативой. Он обеспечивает полностью изолированную, четко определенную и предсказуемую среду. Среди практических вариантов использования мы можем перечислить передовые вычисления, сценарии, выполнение правил Интернета вещей, контракты на блокчейн и т. Д.

Васм3 требуется 64 КБ памяти для кода и 10 КБ ОЗУ, что ты позволяет использовать проект для запуска скомпилированных приложений в WebAssembly в микроконтроллерах, таких как Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), AT40ga а также на платах и ​​компьютерах на основе архитектур x86, x64, ARM, MIPS, RISC-V и Xtens.

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

Частые рабочие процессы для оптимизации превращаются в сводные операции.

Кроме того, Результаты исследования можно увидеть на WebAssembly в Интернете. После анализа 948 тысяч самых популярных сайтов, оцененных Alexa, исследователи обнаружили, что WebAssembly используют 1639 сайтов (0.17%), что составляет 1 из 600 сайтов.

Всего на сайтах выявлена ​​загрузка 1950 модулей WebAssembly, из которых 150 уникальных.

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

Поддерживаемых операционных систем для 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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.