WASI projekt Mozilla pro použití WebAssembly mimo prohlížeč

WASI projekt Mozilla pro použití WebAssembly mimo prohlížeč

Vývojáři Mozilly představili projekt WASI (WebAssembly System Interface), která pracuje na definování softwarových rozhraní, která lze použít k uspořádání interakce aplikací dodávaných ve formátu WebAssembly s operačním systémem.

Cílem projektu je poskytnout API, které rozšíří použití WebAssembly a umožní vám vytvářet programy pravidelné V této technologii, která běží mimo prohlížečJsou přenosné na jakoukoli platformu a vykazují vysokou úroveň zabezpečení.

Co je WASI?

WASI umožňuje prostředí WebAssembly přístup k funkcím poskytovaným operačním systémemjako jsou soubory, systém souborů, síťové zásuvky, časovače a generátory náhodných čísel.

Rozhraní WASI API je zpočátku vyvíjeno jako nezávislé na prohlížeči a samostatné z JavaScript / Web API, ale zároveň poskytuje odpovídající úroveň izolace systému main (aplikace běží v karanténě) a umožňuje vám explicitně definovat oprávnění udělené aplikaci ve stylu CloudABI a Capsicum.

BYL JSEM používá model zabezpečení založený na správě oprávnění, v rámci kterého může program pouze úmyslně provádět autorizované akce.

Podobně jako WebAssembly omezuje přístup na úrovni funkcí importu, WASI řídí přístup k funkcím systému.

Soubory, adresáře, sokety a další prostředky jsou spojeny se zvláštním typem deskriptoru souborů (kapacita) a aplikace musí mít oprávnění k provedení akce u každého ze zdrojů.

Oprávnění jsou spravována hierarchicky, to znamená, že je automaticky otevřen přístup k adresáři a přístup ke všem souborům, které obsahuje.

Od té doby WebAssembly je jazyková verze sestavení nezávislá na platformě, použitím JIT lze dosáhnout úrovně výkonu blízké nativnímu kódu, při zachování možnosti provozu na různých hardwarových platformách a operačních systémech.

V současné době projekt poskytuje wasi-core modulu implementaci základního POSIX API (soubory, zásuvky atd.), Které v současné době postrádá podporu pro zámky a asynchronní I / O.

V budoucnosti, plánuje se vytvoření modulů s implementací API k provádění kryptografických operací, práce s 3D grafikou, interakce se senzory, operace s procesy (volání vidlice zatím není podporováno) a zpracování multimediálních dat.

Prototypy součástí

Wasmtime je běhový modul, který je zodpovědný za běh aplikací založených na WebAssembly s rozšířeními WASI jako běžnými samostatnými aplikacemi.

Se podporuje spuštění bytecode WebAssembly pomocí speciálního nástroje příkazového řádku a návrh připravených spustitelných souborů (wasmtime je integrován do aplikace jako knihovna).

K dosažení odpovídající úrovně výkonu se používá kompilátor JIT založený na generátoru kódu nadmořské výšky.

Lucet je další běhová verze projektu Fastly (zveřejnění kódu je naplánováno dnes nebo zítra).

WASI SDK- Nástroje pro kompilaci aplikací C / C ++ ve formátu webové sestavy pomocí Clang 8.0.

Cíl sestavení s podporou WASI pro jazyk Rust, který umožňuje kompilovat Rust kód do WebAssembly.

Wasi-sysroot je implementace standardní knihovny libc pro WASI, založený na Muslově kódu, stejně jako běhová vrstva k překladu funkcí poskytovaných knihovnou do systémových volání různých operačních systémů, aby se dosáhlo možnosti spuštění aplikace WASI na různých operačních systémech.

Projekt také vyvíjí knihovnu JavaScriptu polyfill s implementací WASI pro spouštění aplikací v prohlížeči., který umožňuje aplikovat model kontroly přístupu „schopností“ na kód prováděný v prohlížeči.

Z plánů je zmíněno vytvoření modulového systému založeného na WASI pro integraci do izolovaných aplikací plug-in s dalšími funkcemi poskytovanými ve formátu WebAssembly.

Jedním z hlavních úkolů WebAssembly je zajistit přenositelnost, předvídatelnost chování a identitu provádění kódu na různých platformách.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.