WASI „Mozilla“ projektas, skirtas „WebAssembly“ naudoti ne naršyklėje

WASI „Mozilla“ projektas, skirtas „WebAssembly“ naudoti ne naršyklėje

„Mozilla“ kūrėjai pristatė WASI projektą („WebAssembly System Interface“), kuri kuria programinės įrangos sąsajų, kurios gali būti naudojamos organizuojant „WebAssembly“ formatu pateiktų programų sąveiką su operacine sistema, apibrėžimą.

Projekto tikslas yra pateikti API, kuri praplečia „WebAssembly“ naudojimą ir leidžia kurti programas reguliariai pagrįstas Ši technologija veikia ne naršyklėjeJie yra nešiojami bet kurioje platformoje ir rodo aukštą saugumo lygį.

Kas yra WASI?

WASI leidžia „WebAssembly“ aplinkai pasiekti operacinės sistemos teikiamas funkcijasfailai, failų sistema, tinklo lizdai, laikmačiai ir atsitiktinių skaičių generatoriai.

Iš pradžių WASI API buvo sukurta kaip nesusieta su naršykle ir atskira iš „JavaScript“ / žiniatinklio API, bet tuo pačiu metu užtikrinamas tinkamas sistemos izoliacijos lygis main (programos yra vykdomos smėlio dėžėje) ir leidžia aiškiai apibrėžti programai suteiktą autoritetą „CloudABI“ ir „Capsicum“ stiliumi.

WASI naudoja saugos modelį, pagrįstą leidimų valdymu, kurio metu programa gali sąmoningai atlikti tik įgaliotus veiksmus.

Panašiai kaip „WebAssembly“ riboja prieigą importavimo funkcijų lygiu, WASI kontroliuoja prieigą prie sistemos galimybių.

Failai, katalogai, lizdai ir kiti ištekliai yra susieti su specialiu failų deskriptoriaus tipu (talpa), ir programa turi turėti leidimus atlikti veiksmus su kiekvienu iš išteklių.

Leidimai tvarkomi hierarchiškai, tai yra, automatiškai atidaroma prieiga prie katalogo ir prieiga prie visų jame esančių failų.

Nuo „WebAssembly“ yra nuo platformos nepriklausoma surinkimo kalbos versija, naudojant JIT galima pasiekti našumo lygį, artimą gimtajam kodui, išlaikant galimybę veikti įvairiose aparatinės įrangos platformose ir operacinėse sistemose.

Šiuo metu projektas teikia „wasi-core“ modulį, kuriame įdiegta pagrindinė POSIX API (failai, lizdai ir kt.), Kuriam šiuo metu trūksta spynų ir asinchroninio I / O palaikymo.

Ateityje, planuojama sukurti modulius su API diegimu kriptografinėms operacijoms atlikti, darbui su 3D grafika, sąveikauja su jutikliais, operacijomis su procesais (šakės iškvietimas dar nepalaikomas) ir apdoroja daugialypės terpės duomenis.

Komponentų prototipai

„Wasmtime“ yra vykdymo laikas, kuris yra atsakingas už programų, pagrįstų „WebAssembly“, paleidimą su WASI plėtiniais kaip įprastomis atskiromis programomis.

Se palaiko „WebAssembly“ baitų kodo paleidimą specialios komandinės eilutės įrankio pagalba ir paruoštų naudoti vykdomųjų failų projektavimas („wasmtime“ yra įmontuota programoje kaip biblioteka).

Norint pasiekti tinkamą našumo lygį, naudojamas JIT kompiliatorius, pagrįstas aukščio kodų generatoriumi.

„Lucet“ yra dar viena „Fastly“ projekto vykdymo versija (kodą planuojama paskelbti šiandien arba rytoj).

WASI SDK- Įrankiai, skirti kaupti C / C ++ programas žiniatinklio surinkimo formatu naudojant „Clang 8.0“.

Surinkimo tikslas su WASI palaikymu „Rust“ kalbai, leidžiančia sukompiliuoti „Rust“ kodą į „WebAssembly“.

„Wasi-sysroot“ yra standartinės „libc“ bibliotekos, skirtos WASI, įgyvendinimas, pagrįstas musulmonišku kodu, taip pat vykdymo laiko sluoksniu, kuris bibliotekos teikiamas funkcijas paverčia įvairių operacinių sistemų sistemos skambučiais, kad būtų galima paleisti WASI programą skirtingose ​​operacinėse sistemose.

Projektas taip pat kuria daugialypės „JavaScript“ biblioteką su WASI diegimu, kad būtų galima paleisti programas naršyklėje., kuris leidžia „galimybių“ prieigos valdymo modelį pritaikyti naršyklėje vykdomam kodui.

Iš planų minimas WASI pagrindu sukurtos modulių sistemos, skirtos integruoti į izoliuotas papildinių programas, sukūrimas su papildomomis funkcijomis, teikiamomis „WebAssembly“ formatu, sukūrimas.

Viena iš pagrindinių „WebAssembly“ užduočių yra užtikrinti perkeliamumą, elgesio nuspėjamumą ir kodo vykdymo tapatumą skirtingose ​​platformose.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.