WASI et Mozilla-prosjekt for å bruke WebAssembly utenfor nettleseren

WASI et Mozilla-prosjekt for å bruke WebAssembly utenfor nettleseren

Mozilla-utviklere presenterte WASI-prosjektet (WebAssembly System Interface), som jobber med å definere programvaregrensesnitt som kan brukes til å organisere samspillet mellom applikasjoner som leveres i WebAssembly-format og operativsystemet.

Målet med prosjektet er å tilby et API som utvider bruken av WebAssembly og lar deg lage programmer vanlig basert I denne teknologien som kjører utenfor nettleserenDe er bærbare til alle plattformer og viser et høyt sikkerhetsnivå.

Hva er WASI?

WASI gir WebAssembly-miljøet tilgang til funksjonene som tilbys av operativsystemetsom filer, filsystem, nettverkskontakter, tidtakere og tilfeldige tallgeneratorer.

WASI API ble opprinnelig utviklet som ikke-nettleserbundet og frittstående fra JavaScript / Web API, men gir samtidig et tilstrekkelig nivå av systemisolering main (applikasjoner som kjøres i en sandkasse) og lar deg eksplisitt definere autoriteten som er gitt til applikasjonen i stil med CloudABI og Capsicum.

VAR JEG bruker en sikkerhetsmodell basert på tillatelsesadministrasjon, der et program bare bevisst kan utføre autoriserte handlinger.

I likhet med hvordan WebAssembly begrenser tilgangen på importfunksjonene, kontrollerer WASI tilgangen til systemfunksjonene.

Filer, kataloger, stikkontakter og andre ressurser er knyttet til en spesiell type filbeskrivelse (kapasitet), og applikasjonen må ha tillatelse til å utføre en handling på hver av ressursene.

Tillatelser administreres hierarkisk, det vil si at tilgang til katalogen åpnes automatisk og tilgang til alle filene den inneholder.

Gitt at WebAssembly er en plattformuavhengig versjon av monteringsspråk, bruk av JIT kan oppnå et ytelsesnivå nær innfødt kode, samtidig som du opprettholder muligheten til å kjøre på forskjellige maskinvareplattformer og operativsystemer.

Foreløpig gir prosjektet wasi-core-modulen implementering av den grunnleggende POSIX API (filer, stikkontakter, etc.), som for øyeblikket mangler støtte for låser og asynkron I / O.

I fremtiden, det er planlagt å lage moduler med en API-implementering for å utføre kryptografiske operasjoner, jobbe med 3D-grafikk, samhandle med sensorer, operasjoner med prosesser (gaffelanropet støttes ikke ennå) og behandle multimediedata.

Komponent prototyper

Wasmtime er en kjøretid som er ansvarlig for å kjøre applikasjoner basert på WebAssembly med WASI-utvidelser som vanlige frittstående applikasjoner.

Se støtter lansering av WebAssembly bytecode ved hjelp av et spesielt kommandolinjeverktøy og designe ferdige kjørbare filer (wasmtime er innebygd i applikasjonen som et bibliotek).

For å oppnå riktig ytelsesnivå brukes en JIT-kompilator basert på høydekodegeneratoren.

Lucet er en annen kjøretidsversjon av Fastly-prosjektet (koden er planlagt å bli publisert i dag eller i morgen).

WASI SDK- Verktøy for å kompilere C / C ++ applikasjoner i nettmonteringsformat ved bruk av Clang 8.0.

Et monteringsmål med WASI-støtte for Rust-språket, som lar deg kompilere Rust-kode til et WebAssemble.

Wasi-sysroot er en implementering av standard libc-biblioteket for WASI, basert på musl-kode, samt et kjøretidslag for å oversette funksjonene som tilbys av biblioteket til systemanrop fra forskjellige operativsystemer for å oppnå muligheten for å kjøre et WASI-program på forskjellige operativsystemer.

Prosjektet utvikler også JavaScript-biblioteket for polyfill med en WASI-implementering for å kjøre applikasjoner i nettleseren., som gjør det mulig å bruke tilgangsmodellen for "funksjoner" på kode som kjøres i nettleseren.

Av planene nevnes etableringen av et WASI-basert modulsystem for integrering i isolerte plugin-applikasjoner med tilleggsfunksjonalitet gitt i WebAssembly-formatet.

En av hovedoppgavene til WebAssembly er å sikre bærbarhet, forutsigbarhet for oppførsel og identitet til kodeutførelse på forskjellige plattformer.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.