Mozilla, Fastly, Intel und Red Hat fördern WebAssembly als universelle Plattform

WebAssembly

Mozilla, Fastly, Intel und Red Hat haben sich zusammengetan entwickeln Technologien, die machen WebAssembly eine universelle Plattform um Code sicher auf jeder Infrastruktur auszuführen, Betriebssystem und Gerät. Für die gemeinsame Entwicklung von Laufzeit und Compilern, die die Verwendung von WebAssembly nicht nur in Webbrowsern ermöglicht, wurde die Bytecode Alliance-Community gegründet.

So erstellen Sie tragbare Programme Lieferung im WebAssembly-Format Für die Ausführung außerhalb des Browsers wird die Verwendung der WASI-API vorgeschlagen (WebAssembly-Systemschnittstelle), die Programmschnittstellen für die direkte Interaktion mit dem Betriebssystem bereitstellt (POSIX-API für die Arbeit mit Dateien, Sockets usw.).

Eine Besonderheit des Ausführungsmodells von Anwendungen, die WAS verwendenIch starte in einer Sandbox-Umgebung Um sich vom Hauptsystem zu isolieren und einen auf Kapazitätsmanagement basierenden Sicherheitsmechanismus für Aktionen mit jeder der Ressourcen (Dateien, Verzeichnisse, Sockets, Systemaufrufe usw.) zu verwenden, muss die Anwendung über die entsprechende Berechtigung verfügen (Zugriff wird nur gewährt zu deklarierter Funktionalität).

Uno der Ziele der Allianz erstellt ist es, das Problem der Verbreitung moderner modularer Anwendungen mit vielen Abhängigkeiten zu lösen. In solchen Anwendungen kann jede Abhängigkeit eine potenzielle Quelle für Schwachstellen oder Angriffe sein. Mit der Abhängigkeitskontrolle können Sie die Kontrolle über alle damit verbundenen Anwendungen erlangen.

Mitglieder der Bytecode Alliance beabsichtigen, eine vollständige Lösung vorzubereiten für die sichere Ausführung von WebAssembly-Anwendungen, die zunächst nicht vertrauenswürdig sind.

Zum Schutz, Es wird vorgeschlagen, das Konzept des Nanoprozesses zu verwendens, in dem jedes Abhängigkeitsmodul getrennt ist in einem separaten isolierten WebAssembly-Modul, dessen Berechtigung so konfiguriert ist, dass sie nur an dieses Modul bindet (z. B. kann eine Bibliothek zum Verarbeiten von Zeichenfolgen keinen Netzwerksocket oder keine Netzwerkdatei öffnen).

Im Gegensatz zur Prozesstrennung WebAssembly-Handler sind leichtgewichtig und erfordern fast keine zusätzlichen Ressourcen Darüber hinaus ist die Interaktion zwischen den Handlern nicht viel langsamer als das Aufrufen gewöhnlicher Funktionen.

Für die gemeinsame Entwicklung wurden mehrere WebAssembly-bezogene Projekte, die zuvor von den Gründungsunternehmen der Allianz separat entwickelt wurden, unter dem Dach der Bytecode Alliance übertragen:

  • wasmtime: a Laufzeit zum Ausführen von WebAssembly-Anwendungen mit WASI-Erweiterungen als reguläre eigenständige Apps. Es unterstützt das Starten des WebAssembly-Bytecodes mithilfe eines speziellen Befehlszeilenprogramms und das Entwerfen sofort einsatzbereiter ausführbarer Dateien (wasmtime ist als Bibliothek in die Anwendung integriert).
  • Lucette: ein Compiler und eine Laufzeit zum Ausführen von Programmen im WebAssembly-Format. Eine Besonderheit von Lucet ist die Verwendung einer vollständigen vorbeugenden Kompilierung (AOT, im Voraus) für Maschinencode, die für die direkte Ausführung anstelle von JIT geeignet ist. Das Projekt wurde von Fastly entwickelt und optimiert, um nur minimale Ressourcen zu verbrauchen und schnell neue Instanzen zu starten. Im Rahmen eines gemeinsamen Projekts ist geplant, den Lucet-Compiler so zu ändern, dass Wasmtime als Basis verwendet wird.
  • WAMR (Web Assembly Micro Runtime): es eine andere Laufzeit zum Ausführen von WebAssembly, ursprünglich von Intel für den Einsatz in IoT-Geräten entwickelt. WAMR Es ist für einen minimalen Ressourcenverbrauch optimiert und kann auf Geräten mit wenig RAM verwendet werden. Das Projekt umfasst einen Interpreter und eine virtuelle Maschine zum Ausführen von WebAssembly-Bytecode, eine API (eine Teilmenge von Libc) und Tools zum dynamischen Verwalten von Anwendungen.
  • Kranlift: Ist ein Codegenerator, der eine hardwareunabhängige Zwischendarstellung in Maschinencode übersetzt ausführbare Datei, optimiert für bestimmte Hardwareplattformen. Cranelift unterstützt die Parallelisierung der Funktionskompilierung für eine sehr schnelle Ausgabegenerierung, sodass Sie damit JIT-Compiler erstellen können (Cranelift-basierte JIT wird in der virtuellen Wasmtime-Maschine verwendet).
  • WAR ICH: sind eine Standalone-Implementierung der WASI-API (Web Assembly System Interface), um die Interaktion mit dem Betriebssystem zu organisieren.
  • Cargo-Wasi: un Modul für Frachtpaketmanager Hiermit wird ein Befehl zum Kompilieren von Rust-Code in WebAssembly-Bytecode mithilfe der WASI-Schnittstelle implementiert, um WebAssembly außerhalb des Browsers zu verwenden.
  • wat und wasmparser: sie sind Parser zum Analysieren von Text (WAT, WAST) und binäre Darstellungen des WebAssembly-Bytecodes.

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   01101001b sagte

    "Im Gegensatz zur Prozesstrennung sind WebAssembly-Handler leichtgewichtig und benötigen fast keine zusätzlichen Ressourcen" ...
    Mit Mozilla und Red Hat in der Mischung wird diese Beobachtung von "Licht und erfordert fast keine zusätzlichen Ressourcen" ein phänomenaler Witz xD