WASI проект Mozilla для використання WebAssembly поза браузером

WASI проект Mozilla для використання WebAssembly поза браузером

Розробники Mozilla презентували проект WASI (WebAssembly System Interface), який працює над визначенням програмних інтерфейсів, які можуть бути використані для організації взаємодії програм, що постачаються у форматі WebAssembly, з операційною системою.

Мета проекту - надати API, який розширює використання WebAssembly і дозволяє створювати програми на регулярній основі У цій технології працює поза браузеромВони переносяться на будь-яку платформу і демонструють високий рівень безпеки.

Що таке WASI?

WASI дозволяє середовищу WebAssembly отримати доступ до функцій, що надаються операційною системоютакі як файли, файлова система, мережеві розетки, таймери та генератори випадкових чисел.

API WASI спочатку розроблявся як незалежний від браузера та автономний з JavaScript / Web API, але в той же час забезпечує адекватний рівень ізоляції системи main (програми працюють у пісочниці) і дозволяє чітко визначити повноваження, надані програмі, у стилі CloudABI та Capsicum.

ВАСИ використовує модель безпеки на основі управління дозволами, в рамках якого програма може лише навмисно виконувати санкціоновані дії.

Подібно до того, як WebAssembly обмежує доступ на рівні функцій імпорту, WASI контролює доступ до можливостей системи.

Файли, каталоги, сокети та інші ресурси пов'язані з особливим типом дескриптора файлу (ємністю), і програма повинна мати дозволи на виконання дії над кожним із ресурсів.

Керування дозволами здійснюється ієрархічно, тобто доступ до каталогу відкривається автоматично і доступ до всіх файлів, які він містить.

З тих пір WebAssembly - це незалежна від платформи версія асемблера, використання JIT може досягти рівня продуктивності, близького до рідного коду, зберігаючи можливість роботи на різних апаратних платформах та операційних системах.

В даний час проект забезпечує двоядерний модуль із реалізацією базового API POSIX (файли, сокети тощо), який наразі не має підтримки блокування та асинхронного вводу-виводу.

У майбутньому планується створити модулі з реалізацією API для виконання криптографічних операцій, роботи з 3D-графікою, взаємодіяти з датчиками, операції з процесами (виклик вилки ще не підтримується) та обробка мультимедійних даних.

Компонентні прототипи

Wasmtime - це середовище виконання, яке відповідає за виконання програм на основі WebAssembly з розширеннями WASI як звичайні автономні програми.

Se підтримує запуск байт-коду WebAssembly за допомогою спеціальної утиліти командного рядка і дизайн готових до використання виконуваних файлів (wasmtime вбудований у додаток як бібліотека).

Для досягнення належного рівня продуктивності використовується компілятор JIT на основі генератора коду висот.

Lucet - ще одна версія проекту Fastly (код планується опублікувати сьогодні чи завтра).

WASI SDK- Інструменти для компіляції програм C / C ++ у форматі веб-збірки за допомогою Clang 8.0.

Ціль збірки з підтримкою WASI для мови Rust, що дозволяє компілювати код Rust у WebAssembly.

Wasi-sysroot - це реалізація стандартної бібліотеки libc для WASI, заснований на коді Musl, а також рівень виконання для перетворення функцій, що надаються бібліотекою, у системні виклики різних операційних систем для досягнення можливості запуску програми WASI на різних операційних системах.

Проект також розробляє бібліотеку поліфілів JavaScript з реалізацією WASI для запуску програм у браузері., що дозволяє застосувати модель управління можливостями доступу до коду, що виконується у браузері.

З планів згадується про створення модульної системи на базі WASI для інтеграції до ізольованих додаткових додатків з додатковою функціональністю, що надається у форматі WebAssembly.

Одним з основних завдань WebAssembly є забезпечення переносимості, передбачуваності поведінки та ідентичності виконання коду на різних платформах.


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

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

*

*

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