WASI projekt Mozilla za upotrebu WebAssemblya izvan preglednika

WASI projekt Mozilla za upotrebu WebAssemblya izvan preglednika

Programeri Mozille predstavili su projekt WASI (WebAssembly System Interface), koja radi na definiranju softverskih sučelja koja se mogu koristiti za organizaciju interakcije aplikacija isporučenih u formatu WebAssembly s operativnim sustavom.

Cilj projekta je pružiti API koji proširuje upotrebu WebAssembly-a i omogućuje stvaranje programa redovito U ovoj tehnologiji koja radi izvan preglednikaPrenosivi su na bilo koju platformu i pokazuju visoku razinu sigurnosti.

Što je WASI?

WASI omogućuje okruženju WebAssembly pristup funkcijama koje pruža operativni sustavkao što su datoteke, datotečni sustav, mrežne utičnice, mjerači vremena i generatori slučajnih brojeva.

WASI API u početku je razvijen kao neovisni i samostalni iz JavaScript / Web API-ja, ali istodobno pruža odgovarajuću razinu izolacije sustava main (aplikacije se izvode u pješčaniku) i omogućuje vam izričito definiranje ovlasti dodijeljene aplikaciji u stilu CloudABI i Capsicum.

WASI koristi sigurnosni model zasnovan na upravljanju dozvolama, u okviru kojeg program može samo namjerno izvoditi ovlaštene radnje.

Slično kao što WebAssembly ograničava pristup na razini funkcija uvoza, WASI kontrolira pristup mogućnostima sustava.

Datoteke, direktoriji, utičnice i drugi resursi povezani su s posebnom vrstom deskriptora datoteke (kapaciteta), a aplikacija mora imati dozvole za izvršavanje radnje na svakom od resursa.

Dozvolama se upravlja hijerarhijski, odnosno pristup direktoriju se automatski otvara i pristup svim datotekama koje sadrži.

S obzirom da WebAssembly je inačica asemblerskog jezika neovisna o platformi, upotreba JIT-a može postići razinu performansi blisku izvornom kodu, uz zadržavanje mogućnosti pokretanja na raznim hardverskim platformama i operativnim sustavima.

Trenutno projekt pruža wasi-core modulu s implementacijom osnovnog POSIX API-ja (datoteke, utičnice itd.), Kojem trenutno nedostaje podrška za brave i asinkroni U / I.

U budućnosti, planirano je stvaranje modula s API implementacijom za izvođenje kriptografskih operacija, rad s 3D grafikom, komuniciraju sa senzorima, rade s procesima (poziv vilicom još nije podržan) i obrađuju multimedijske podatke.

Komponentni prototipovi

Wasmtime je runtime koji je odgovoran za pokretanje aplikacija temeljenih na WebAssembly s proširenjima WASI kao obične samostalne aplikacije.

Se podržava pokretanje bajtkoda WebAssembly uz pomoć posebnog uslužnog programa i dizajniranje gotovih izvršnih datoteka (wasmtime je ugrađen u aplikaciju kao knjižnica).

Da bi se postigla odgovarajuća razina izvedbe, koristi se JIT kompajler zasnovan na generatoru elevacijskog koda.

Lucet je još jedna runtime verzija projekta Fastly (kôd bi trebao biti objavljen danas ili sutra).

WASI SDK- Alati za kompajliranje C / C ++ aplikacija u formatu web montaže koristeći Clang 8.0.

Cilj sklopa s WASI podrškom za jezik Rust, koji vam omogućuje kompajliranje Rust koda u WebAssembly.

Wasi-sysroot je implementacija standardne libc biblioteke za WASI, temeljen na Muslovom kodu, kao i runtime sloj za prevođenje funkcija koje knjižnica pruža u sistemske pozive različitih operativnih sustava kako bi se postigla mogućnost pokretanja WASI aplikacije na različitim operativnim sustavima.

Projekt također razvija JavaScript biblioteku polyfill s WASI implementacijom za pokretanje aplikacija u pregledniku., koji omogućuje primjenu modela kontrole pristupa "mogućnostima" na kod izveden u pregledniku.

Od planova se spominje stvaranje modularnog sustava temeljenog na WASI-u za integraciju u izolirane plug-in programe s dodatnom funkcionalnošću koja se pruža u formatu WebAssembly.

Jedan od glavnih zadataka WebAssembly-a je osigurati prenosivost, predvidljivost ponašanja i identitet izvršavanja koda na različitim platformama.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.