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