WASI Mozilla-projekti käyttää WebAssembly-ohjelmaa selaimen ulkopuolella

WASI Mozilla-projekti käyttää WebAssembly-ohjelmaa selaimen ulkopuolella

Mozillan kehittäjät esittivät WASI-projektin (WebAssembly System Interface), joka pyrkii määrittelemään ohjelmistorajapintoja, joita voidaan käyttää WebAssembly-muodossa toimitettujen sovellusten ja käyttöjärjestelmän vuorovaikutuksen järjestämiseen.

Projektin tavoitteena on tarjota sovellusliittymä, joka laajentaa WebAssembly-sovelluksen käyttöä ja jonka avulla voit luoda ohjelmia säännöllinen Tässä tekniikassa, joka toimii selaimen ulkopuolellaNe ovat kannettavia mille tahansa alustalle ja osoittavat korkeaa turvallisuustasoa.

Mikä on WASI?

WASI antaa WebAssembly-ympäristölle mahdollisuuden käyttää käyttöjärjestelmän tarjoamia toimintojakuten tiedostot, tiedostojärjestelmä, verkkoliittimet, ajastimet ja satunnaislukugeneraattorit.

WASI-sovellusliittymä on alun perin kehitetty selaimen ulkopuoliseksi ja erilliseksi JavaScript / Web-sovellusliittymästä, mutta samalla tarjoaa riittävän tasoisen järjestelmän eristämisen main (sovellukset suoritetaan hiekkalaatikossa) ja sen avulla voit määrittää sovellukselle myönnetyn valtuuden nimenomaisesti CloudABI- ja Capsicum-tyyliin.

OLINKO MINÄ käyttää suojausmallia, joka perustuu käyttöoikeuksien hallintaan, jonka sisällä ohjelma voi suorittaa tarkoituksella vain valtuutettuja toimintoja.

Samoin kuin WebAssembly rajoittaa pääsyä tuontitoimintojen tasolla, WASI ohjaa pääsyä järjestelmän ominaisuuksiin.

Tiedostot, hakemistot, pistorasiat ja muut resurssit liitetään erityistyyppiseen tiedostokuvaajaan (kapasiteetti), ja sovelluksella on oltava oikeudet suorittaa toimenpide kullekin resurssille.

Käyttöoikeuksia hallitaan hierarkkisesti, ts. Pääsy hakemistoon avataan automaattisesti ja pääsy kaikkiin sen sisältämiin tiedostoihin.

Dado que WebAssembly on alustasta riippumaton kokoonpanokieliversio, JIT: n avulla voidaan saavuttaa natiivikoodin lähellä oleva suorituskyky, säilyttäen samalla kyvyn toimia eri laitteistoalustoilla ja käyttöjärjestelmillä.

Tällä hetkellä projekti tarjoaa wasi-core-moduulille POSIX-perussovellusliittymän (tiedostot, pistorasiat jne.) Toteutuksen, josta tällä hetkellä puuttuu lukot ja asynkroninen I / O.

Tulevaisuudessa, on tarkoitus luoda moduuleja, joissa on API-toteutus, salaustoimintojen suorittamiseksi, 3D-grafiikan kanssa työskentelemiseksi, vuorovaikutuksessa antureiden kanssa, toimintojen kanssa prosessien kanssa (haarukkapuhelua ei vielä tueta) ja käsitellä multimediatietoja.

Komponenttien prototyypit

Wasmtime on ajonaika, joka vastaa WebAssembly-pohjaisten sovellusten ajamisesta WASI-laajennuksilla tavallisina erillisinä sovelluksina.

Se tukee WebAssembly-tavukoodin käynnistämistä erityisen komentorivi-apuohjelman avulla ja käyttövalmis suoritettava tiedostosuunnittelu (wasmtime on rakennettu sovellukseen kirjastona).

Asianmukaisen suorituskyvyn saavuttamiseksi käytetään korkeuskoodigeneraattoriin perustuvaa JIT-kääntäjää.

Lucet on toinen ajonaikainen versio Fastly-projektista (koodi on tarkoitus julkaista tänään tai huomenna).

WASI SDK- Työkalut C / C ++ -sovellusten kokoamiseen web-kokoonpanomuodossa Clang 8.0: lla.

Asennuskohde, jolla on WASI-tuki Rust-kielelle, jonka avulla voit kääntää Rust-koodin WebAssembly-kokoonpanoon.

Wasi-sysroot on WASI: n tavallisen libc-kirjaston toteutus, joka perustuu muslkoodiin, sekä ajonaikaisen kerroksen, jolla kirjaston tarjoamat toiminnot voidaan kääntää eri käyttöjärjestelmien järjestelmäkutsuiksi, jotta saavutetaan mahdollisuus käyttää WASI-sovellusta eri käyttöjärjestelmissä.

Projektissa kehitetään myös polyfill-JavaScript-kirjastoa WASI-toteutuksella sovellusten ajamiseksi selaimessa., jonka avulla "ominaisuuksien" kulunvalvontamallia voidaan soveltaa selaimessa suoritettavaan koodiin.

Suunnitelmista mainitaan WASI-pohjaisen moduulijärjestelmän luominen integrointia varten erillisiin laajennussovelluksiin, joissa on lisätoimintoja WebAssembly-muodossa.

Yksi WebAssemblyn päätehtävistä on varmistaa siirrettävyys, käyttäytymisen ennustettavuus ja koodin suorituksen identiteetti eri alustoilla.


Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.