Mozilla, Fastly, Intel e Red Hat promuovono WebAssembly come piattaforma universale

WebAssembly

Mozilla, Fastly, Intel e Red Hat hanno collaborato a sviluppare tecnologie che fanno WebAssembly una piattaforma universale per eseguire il codice in modo sicuro su qualsiasi infrastruttura, sistema operativo e dispositivo. Per lo sviluppo congiunto del runtime e dei compilatori, che consente l'utilizzo di WebAssembly non solo nei browser web, è stata costituita la comunità Bytecode Alliance.

Per creare programmi portatili consegnato in formato WebAssembly che può essere eseguito al di fuori del browser, si propone di utilizzare l'API WASI (Interfaccia di sistema WebAssembly), che fornisce interfacce di programma per l'interazione diretta con il sistema operativo (API POSIX per lavorare con file, socket, ecc.).

Una caratteristica distintiva del modello di esecuzione delle applicazioni che utilizzano WASSto lanciando in un ambiente sandbox per isolare dal sistema principale e l'uso di un meccanismo di sicurezza basato sulla gestione della capacità, per le azioni con ciascuna delle risorse (file, directory, socket, chiamate di sistema, ecc.) l'applicazione deve avere l'autorizzazione corrispondente (l'accesso è fornito solo alla funzionalità dichiarata).

Uno degli obiettivi dell'alleanza creato è risolvere il problema della diffusione di moderne applicazioni modulari con molte dipendenze. In tali applicazioni, ogni dipendenza può essere una potenziale fonte di vulnerabilità o attacchi. Gain Dependency Control consente di ottenere il controllo su tutte le applicazioni ad esso associate.

I membri di Bytecode Alliance intendono preparare una soluzione completa per l'esecuzione sicura di applicazioni WebAssembly inizialmente non attendibili.

Per protezione, si propone di utilizzare il concetto di nanoprocessos, in cui ogni modulo di dipendenza è separato in un modulo WebAssembly isolato separato, la cui autorizzazione è configurata per collegarsi solo a questo modulo (ad esempio, una libreria per l'elaborazione delle stringhe non può aprire un socket o un file di rete).

A differenza della separazione del processo, I gestori WebAssembly sono leggeri e non richiedono quasi risorse aggiuntive Inoltre, l'interazione tra i gestori non è molto più lenta rispetto alla chiamata di funzioni ordinarie.

Per lo sviluppo congiunto, diversi progetti relativi a WebAssembly, precedentemente sviluppati separatamente dalle società fondatrici dell'alleanza, sono stati trasferiti sotto l'ala di Bytecode Alliance:

  • Era tempo: A runtime per l'esecuzione di applicazioni WebAssembly con estensioni WASI come normali app autonome. Supporta l'avvio di WebAssembly bytecode utilizzando una speciale utilità della riga di comando e la progettazione di file eseguibili pronti all'uso (wasmtime è integrato nell'applicazione come libreria).
  • Lucetta: è un compilatore e un runtime per eseguire programmi in formato WebAssembly. Una caratteristica distintiva di Lucet è l'uso di una compilazione preventiva completa (AOT, upfront) su codice macchina adatto per l'esecuzione diretta invece di JIT. Il progetto è stato sviluppato da Fastly e ottimizzato per consumare risorse minime e lanciare rapidamente nuove istanze Come parte di un progetto comune, si prevede di cambiare il compilatore Lucet per utilizzare Wasmtime come base.
  • WAMR (micro runtime WebAssembly): es un altro runtime per eseguire WebAssembly, originariamente sviluppato da Intel per l'utilizzo nei dispositivi IoT. WAMR è ottimizzato per un consumo minimo di risorse e può essere utilizzato su dispositivi con una piccola quantità di RAM. Il progetto include un interprete e una macchina virtuale per eseguire il bytecode WebAssembly, un'API (un sottoinsieme di Libc) e strumenti per la gestione dinamica delle applicazioni.
  • gru: E ' un generatore di codice che traduce una rappresentazione intermedia indipendente dall'hardware in codice macchina eseguibile ottimizzato per piattaforme hardware specifiche. Cranelift supporta la parallelizzazione della compilazione di funzioni per una generazione di output molto rapida, consentendo di utilizzarla per creare compilatori JIT (il JIT basato su Cranelift viene utilizzato nella macchina virtuale Wasmtime).
  • ERO IO: una visita implementazione autonoma dell'API WASI (Web Assembly System Interface) per organizzare l'interazione con il sistema operativo.
  • carica-wasi: un modulo per il gestore di pacchetti cargo che implementa un comando per compilare il codice Rust nel bytecode WebAssembly utilizzando l'interfaccia WASI per utilizzare WebAssembly al di fuori del browser.
  • wat e wasmparser: è composta da parser per analizzare il testo (WAT, WAST) e rappresentazioni binarie del codice byte WebAssembly.

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   01101001b suddetto

    "A differenza della separazione dei processi, i gestori WebAssembly sono leggeri e non richiedono quasi risorse aggiuntive" ...
    Con Mozilla e Red Hat nel mix, quell'osservazione di "leggerezza e quasi nessuna risorsa aggiuntiva" sta per diventare uno scherzo fenomenale xD