VAR et Mozilla-projekt til at bruge WebAssembly uden for browseren

VAR et Mozilla-projekt til at bruge WebAssembly uden for browseren

Mozilla-udviklere præsenterede WASI-projektet (WebAssembly System Interface), der arbejder på at definere softwaregrænseflader, der kan bruges til at organisere interaktionen mellem applikationer leveret i WebAssembly-format og operativsystemet.

Målet med projektet er at tilvejebringe en API, der udvider brugen af ​​WebAssembly og giver dig mulighed for at oprette programmer regelmæssigt baseret I denne teknologi, der kører uden for browserenDe er bærbare til enhver platform og viser et højt sikkerhedsniveau.

Hvad er WASI?

WASI giver WebAssembly-miljøet adgang til de funktioner, der leveres af operativsystemetsåsom filer, filsystem, netværksstik, timere og tilfældige talgeneratorer.

WASI API er oprindeligt udviklet som ikke-browser bundet og enkeltstående fra JavaScript / Web API, men giver samtidig et passende niveau af systemisolering main (applikationer kørt i en sandkasse) og giver dig mulighed for eksplicit at definere den autoritet, der er tildelt applikationen i stil med CloudABI og Capsicum.

VAR JEG bruger en sikkerhedsmodel baseret på tilladelsesadministration, inden for hvilket et program kun bevidst kan udføre autoriserede handlinger.

Svarende til hvordan WebAssembly begrænser adgangen på importfunktionsniveauet, kontrollerer WASI adgangen til systemfunktioner.

Filer, kataloger, sockets og andre ressourcer er knyttet til en særlig type filbeskrivelse (kapacitet), og applikationen skal have tilladelse til at udføre en handling på hver af ressourcerne.

Tilladelser administreres hierarkisk, dvs. adgang til biblioteket åbnes automatisk og adgang til alle de filer, den indeholder.

betragtning af, at WebAssembly er en platformuafhængig version af forsamlingssprog, brugen af ​​JIT kan opnå et niveau af ydeevne tæt på den oprindelige kode, samtidig med at man opretholder evnen til at køre på forskellige hardwareplatforme og operativsystemer.

I øjeblikket forsyner projektet wasi-core-modulet med implementeringen af ​​den grundlæggende POSIX API (filer, sockets osv.), Som i øjeblikket mangler support til låse og asynkron I / O.

I fremtiden det er planlagt at oprette moduler med en API-implementering til at udføre kryptografiske operationer, arbejde med 3D-grafik, interagere med sensorer, operationer med processer (fork-opkaldet understøttes endnu ikke) og behandle multimediedata.

Komponent prototyper

Wasmtime er en runtime, der er ansvarlig for at udføre applikationer baseret på WebAssembly med WASI-udvidelser som almindelige enkeltstående applikationer.

Se understøtter lancering af WebAssembly bytecode ved hjælp af et specielt kommandolinjeprogram og klar til brug eksekverbar fildesign (wasmtime er indbygget i applikationen som et bibliotek).

For at opnå det passende niveau af ydeevne anvendes en JIT-kompilator baseret på generatoren til højdekoden.

Lucet er en anden runtime-version af Fastly-projektet (koden er planlagt til at blive offentliggjort i dag eller i morgen).

WASI SDK- Værktøjer til kompilering af C / C ++ applikationer i websamlingsformat ved hjælp af Clang 8.0.

Et samlingsmål med WASI-understøttelse af Rust-sproget, som giver dig mulighed for at kompilere Rust-kode til en WebAssemble.

Wasi-sysroot er en implementering af standard libc-biblioteket til WASI, baseret på musl-kode samt et runtime-lag til oversættelse af funktionerne leveret af biblioteket til systemopkald fra forskellige operativsystemer for at opnå muligheden for at køre en WASI-applikation på forskellige operativsystemer.

Projektet udvikler også polyfill JavaScript-biblioteket med en WASI-implementering til at køre applikationer i browseren., som gør det muligt at anvende "muligheder" adgangskontrolmodellen til den kode, der udføres i browseren.

Af planerne nævnes oprettelsen af ​​et WASI-baseret modulsystem til integration i isolerede plug-in-applikationer med yderligere funktionalitet leveret i WebAssembly-formatet.

En af hovedopgaverne for WebAssembly er at sikre bærbarhed, forudsigelighed for adfærd og identitet af kodeudførelse på forskellige platforme.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.