Mozilla, Fastly, Intel en Red Hat promoten WebAssembly als een universeel platform

WebAssembly

Mozilla, Fastly, Intel en Red Hat werken samen ontwikkelen technologieën die maken WebAssembly een universeel platform om code veilig uit te voeren op elke infrastructuur, besturingssysteem en apparaat. Voor de gezamenlijke ontwikkeling van de runtime en compilers, waardoor WebAssembly niet alleen in webbrowsers kan worden gebruikt, is de Bytecode Alliance-community gevormd.

Om draagbare programma's te maken geleverd in WebAssembly-formaat die buiten de browser kan worden uitgevoerd, wordt voorgesteld om de WASI API te gebruiken (WebAssembly-systeeminterface), die programma-interfaces biedt voor directe interactie met het besturingssysteem (POSIX API voor het werken met bestanden, sockets, enz.).

Een onderscheidend kenmerk van het uitvoeringsmodel van applicaties die WAS gebruikenIk lanceer in een sandbox-omgeving om te isoleren van het hoofdsysteem en het gebruik van een beveiligingsmechanisme op basis van capaciteitsbeheer, voor acties met elk van de bronnen (bestanden, mappen, sockets, systeemoproepen, enz.), moet de applicatie de overeenkomstige autorisatie hebben (toegang wordt alleen verleend gedeclareerde functionaliteit).

Een van de doelstellingen van de alliantie gemaakt is om het probleem op te lossen van het verspreiden van moderne modulaire applicaties met veel afhankelijkheden. In dergelijke toepassingen kan elke afhankelijkheid een potentiële bron van kwetsbaarheden of aanvallen zijn. Door afhankelijkheidscontrole te krijgen, krijgt u controle over alle applicaties die eraan zijn gekoppeld.

Bytecode Alliance-leden zijn van plan een complete oplossing voor te bereiden voor de veilige uitvoering van WebAssembly-applicaties die in eerste instantie niet vertrouwd zijn.

Voor bescherming, voorgesteld wordt om het concept van nanoproces te gebruikens, waarin elke afhankelijkheidsmodule is gescheiden in een aparte geïsoleerde WebAssembly-module, waarvan de machtiging is geconfigureerd om alleen aan deze module te binden (een bibliotheek voor het verwerken van strings kan bijvoorbeeld geen netwerksocket of bestand openen).

In tegenstelling tot processcheiding, WebAssembly-handlers zijn licht van gewicht en vereisen bijna geen extra middelen Bovendien is de interactie tussen de handlers niet veel langzamer dan het aanroepen van gewone functies.

Voor gezamenlijke ontwikkeling werden verschillende WebAssembly-gerelateerde projecten, voorheen afzonderlijk ontwikkeld door de oprichters van de alliantie, overgedragen onder de vleugels van Bytecode Alliance:

  • Wasmtijd: A runtime voor het uitvoeren van WebAssembly-applicaties met WASI-extensies als gewone zelfstandige apps. Het ondersteunt het starten van de WebAssembly-bytecode met behulp van een speciaal opdrachtregelprogramma en het ontwerpen van out-of-the-box uitvoerbare bestanden (wasmtime is als bibliotheek in de applicatie ingebouwd).
  • Lucette: is een compiler en een runtime om programma's in WebAssembly-indeling uit te voeren​ Een onderscheidend kenmerk van Lucet is het gebruik van een volledige preventieve compilatie (AOT, upfront) op machinecode die geschikt is voor directe uitvoering in plaats van JIT. Het project is ontwikkeld door Fastly en geoptimaliseerd om minimale middelen te verbruiken en snel nieuwe instances te lanceren Als onderdeel van een gezamenlijk project is het de bedoeling om de Lucet-compiler te veranderen om Wasmtime als basis te gebruiken.
  • WAMR (Web Assembly Micro-runtime): es nog een runtime om WebAssembly uit te voeren, oorspronkelijk ontwikkeld door Intel voor gebruik in IoT-apparaten. WAMR het is geoptimaliseerd voor minimaal resourceverbruik en kan worden gebruikt op apparaten met een kleine hoeveelheid RAM. Het project omvat een interpreter en virtuele machine om de bytecode van WebAssembly uit te voeren, een API (een subset van Libc) en tools om applicaties dynamisch te beheren.
  • Kraanlift: es een codegenerator die een hardwareonafhankelijke tussenrepresentatie vertaalt in machinecode uitvoerbaar bestand geoptimaliseerd voor specifieke hardwareplatforms. Cranelift ondersteunt parallellisatie van functiecompilatie voor zeer snelle outputgeneratie, waardoor u het kunt gebruiken om JIT-compilers te maken (op Cranelift gebaseerde JIT wordt gebruikt in de virtuele machine van Wasmtime).
  • WAS IK: een zelfstandige implementatie van de WASI API (Web Assembly System Interface) om de interactie met het besturingssysteem te organiseren.
  • vracht-wasi: un module voor vrachtpakketbeheerder die een commando implementeert om Rust-code te compileren in WebAssembly-bytecode met behulp van de WASI-interface om WebAssembly buiten de browser te gebruiken.
  • wat en wasmparser: zijn parsers om tekst te analyseren (WAT, WAST) en binaire representaties van de WebAssembly-bytecode.

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   01101001b zei

    "In tegenstelling tot processcheiding zijn WebAssembly-handlers licht van gewicht en hebben ze bijna geen extra middelen nodig" ...
    Met Mozilla en Red Hat in de mix, wordt die observatie van "licht en bijna geen extra middelen nodig" een fenomenale grap xD