Mozilla, Fastly, Intel et Red Hat font la promotion de WebAssembly en tant que plate-forme universelle

WebAssembly

Mozilla, Fastly, Intel et Red Hat se sont associés pour desarrollar technologies qui font WebAssembly une plateforme universelle pour exécuter du code en toute sécurité sur n'importe quelle infrastructure, système d'exploitation et appareil. Pour le développement conjoint du runtime et des compilateurs, qui permet l'utilisation de WebAssembly non seulement dans les navigateurs Web, la communauté Bytecode Alliance a été formée.

Pour créer des programmes portables livré au format WebAssembly qui peut être exécuté en dehors du navigateur, il est proposé d'utiliser l'API WASI (Interface système WebAssembly), qui fournit des interfaces de programme pour une interaction directe avec le système d'exploitation (API POSIX pour travailler avec des fichiers, des sockets, etc.).

Une particularité du modèle d'exécution des applications utilisant WASJe lance dans un environnement sandbox pour s'isoler du système principal et l'utilisation d'un mécanisme de sécurité basé sur la gestion de la capacité, pour les actions avec chacune des ressources (fichiers, répertoires, sockets, appels système, etc.) l'application doit avoir l'autorisation correspondante (l'accès est uniquement fourni à la fonctionnalité déclarée).

uno des objectifs de l'alliance créé est de résoudre le problème de la diffusion des applications modulaires modernes avec beaucoup de dépendances. Dans de telles applications, chaque dépendance peut être une source potentielle de vulnérabilités ou d'attaques. Gagner le contrôle des dépendances vous permet de prendre le contrôle de toutes les applications qui lui sont associées.

Les membres de Bytecode Alliance ont l'intention de préparer une solution complète pour l'exécution en toute sécurité des applications WebAssembly qui ne sont initialement pas approuvées.

Pour la protection, il est proposé d'utiliser le concept de nanoprocesss, dans lequel chaque module de dépendance est séparé dans un module WebAssembly isolé distinct, dont l'autorité est configurée pour se lier uniquement à ce module (par exemple, une bibliothèque de traitement de chaînes ne peut pas ouvrir une socket ou un fichier réseau).

Contrairement à la séparation des processus, Les gestionnaires WebAssembly sont légers et ne nécessitent pratiquement aucune ressource supplémentaire De plus, l'interaction entre les gestionnaires n'est pas beaucoup plus lente que l'appel de fonctions ordinaires.

Pour un développement conjoint, plusieurs projets liés à WebAssembly, précédemment développés séparément par les sociétés fondatrices de l'alliance, ont été transférés sous l'aile de Bytecode Alliance:

  • temps passé: a runtime pour exécuter des applications WebAssembly avec des extensions WASI en tant qu'applications autonomes régulières. Il prend en charge le lancement du bytecode WebAssembly à l'aide d'un utilitaire de ligne de commande spécial et la conception de fichiers exécutables prêts à l'emploi (wasmtime est intégré à l'application en tant que bibliothèque).
  • Lucette : est un compilateur et un runtime pour exécuter des programmes au format WebAssembly. Une particularité de Lucet est l'utilisation d'une compilation préventive complète (AOT, en amont) sur du code machine adapté à une exécution directe au lieu de JIT. Le projet a été développé par Fastly et optimisé pour consommer un minimum de ressources et lancer rapidement de nouvelles instances.Dans le cadre d'un projet commun, il est prévu de changer le compilateur Lucet pour utiliser Wasmtime comme base.
  • WAMR (WebAssembly Micro Runtime) : es un autre runtime pour exécuter WebAssembly, initialement développé par Intel pour une utilisation dans les appareils IoT. WAMR il est optimisé pour une consommation de ressources minimale et peut être utilisé sur des appareils avec une petite quantité de RAM. Le projet comprend un interpréteur et une machine virtuelle pour exécuter le bytecode WebAssembly, une API (un sous-ensemble de Libc) et des outils pour gérer dynamiquement les applications.
  • Grue: Est- un générateur de code qui traduit une représentation intermédiaire indépendante du matériel en code machine exécutable optimisé pour des plates-formes matérielles spécifiques. Cranelift prend en charge la parallélisation de la compilation de fonctions pour une génération de sortie très rapide, vous permettant de l'utiliser pour créer des compilateurs JIT (le JIT basé sur Cranelift est utilisé dans la machine virtuelle Wasmtime).
  • ÉTAIS-JE: un implémentation autonome de l'API WASI (Web Assembly System Interface) pour organiser l'interaction avec le système d'exploitation.
  • cargo-wasi : un module pour gestionnaire de colis de fret qui implémente une commande pour compiler le code Rust en bytecode WebAssembly à l'aide de l'interface WASI pour utiliser WebAssembly en dehors du navigateur.
  • wat et wasmparser: sont analyseurs pour analyser le texte (WAT, WAST) et des représentations binaires du code d'octet WebAssembly.

Un commentaire, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   01101001b dit

    "Contrairement à la séparation des processus, les gestionnaires WebAssembly sont légers et ne nécessitent pratiquement aucune ressource supplémentaire" ...
    Avec Mozilla et Red Hat dans le mélange, cette observation de "la lumière et ne nécessite presque pas de ressources supplémentaires" est en passe de devenir une blague phénoménale xD