WASI projekt Mozilla za uporabo WebAssembly zunaj brskalnika

WASI projekt Mozilla za uporabo WebAssembly zunaj brskalnika

Razvijalci Mozille so predstavili projekt WASI (WebAssembly System Interface), ki se ukvarja z definiranjem programskih vmesnikov, s katerimi lahko organiziramo interakcijo aplikacij, dobavljenih v obliki WebAssembly, z operacijskim sistemom.

Cilj projekta je zagotoviti API, ki razširja uporabo WebAssembly in omogoča ustvarjanje programov redno V tej tehnologiji, ki deluje zunaj brskalnikaPrenosni so na katero koli platformo in kažejo visoko raven varnosti.

Kaj je WASI?

WASI omogoča okolju WebAssembly dostop do funkcij operacijskega sistemakot so datoteke, datotečni sistem, omrežne vtičnice, časovniki in generatorji naključnih števil.

API WASI je bil sprva razvit kot neodvisen in samostojen iz JavaScript / spletnega API-ja, vendar hkrati zagotavlja zadostno stopnjo izolacije sistema main (aplikacije se izvajajo v peskovniku) in vam omogoča, da v slogu CloudABI in Capsicuma izrecno določite pooblastilo, ki je podano aplikaciji.

SEM BIL JAZ uporablja varnostni model, ki temelji na upravljanju dovoljenj, v okviru katerega lahko program samo namerno izvaja pooblaščena dejanja.

Podobno kot WebAssembly omejuje dostop na ravni funkcij uvoza, tudi WASI nadzoruje dostop do sistemskih zmogljivosti.

Datoteke, imeniki, vtičnice in drugi viri so povezani s posebno vrsto deskriptorja datoteke (zmogljivost), aplikacija pa mora imeti dovoljenja za izvedbo dejanja na vsakem od virov.

Dovoljenja se upravljajo hierarhično, to pomeni, da se samodejno odpre dostop do imenika in dostop do vseh datotek, ki jih vsebuje.

Od takrat WebAssembly je različica montažnega jezika, neodvisna od platforme, z uporabo JIT pa lahko dosežete raven zmogljivosti, ki je blizu izvorni kodi, obenem pa ohrani zmožnost izvajanja na različnih strojnih platformah in operacijskih sistemih.

Trenutno projekt omogoča jedrnemu jedru izvedbo osnovnega API-ja POSIX (datoteke, vtičnice itd.), Ki trenutno nima podpore za ključavnice in asinhrono V / I.

V prihodnosti, predvideno je ustvariti module z izvedbo API za izvajanje kriptografskih operacij, delo s 3D grafiko, interakcijo s senzorji, operacije s procesi (klic vilic še ni podprt) in obdelavo večpredstavnostnih podatkov.

Sestavni prototipi

Wasmtime je izvajalno okolje, ki je odgovorno za zagon aplikacij, ki temeljijo na WebAssembly z razširitvami WASI kot običajne samostojne aplikacije.

Se podpira zagon bytecode WebAssembly s pomočjo posebnega pripomočka ukazne vrstice in pripravljeno izvedbeno datoteko (wasmtime je v aplikacijo vgrajen kot knjižnica).

Da bi dosegli ustrezno raven zmogljivosti, se uporablja prevajalnik JIT, ki temelji na generatorju višinske kode.

Lucet je še ena izvedbena različica projekta Fastly (koda bo predvidoma objavljena danes ali jutri).

WASI SDK- Orodja za sestavljanje aplikacij C / C ++ v formatu spletnega sestavljanja z uporabo Clang 8.0.

Cilj sestavljanja s podporo WASI za jezik Rust, ki vam omogoča prevajanje kode Rust v WebAssembly.

Wasi-sysroot je izvedba standardne knjižnice libc za WASI, ki temelji na Muslovi kodi, pa tudi izvajalno plast za prevajanje funkcij, ki jih ponuja knjižnica, v sistemske klice različnih operacijskih sistemov, da se doseže možnost izvajanja aplikacije WASI v različnih operacijskih sistemih.

Projekt razvija tudi knjižnico polyfill JavaScript z implementacijo WASI za zagon aplikacij v brskalniku., ki omogoča uporabo modela za nadzor dostopa "zmožnosti" za kodo, ki se izvaja v brskalniku.

Med načrti se omenja ustvarjanje modularnega sistema, ki temelji na WASI, za integracijo v izolirane vtične programe z dodatno funkcionalnostjo, zagotovljeno v formatu WebAssembly.

Ena glavnih nalog WebAssembly je zagotoviti prenosljivost, predvidljivost vedenja in identiteto izvajanja kode na različnih platformah.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.