Mozilla, Fastly, Intel e Red Hat promovem WebAssembly como uma plataforma universal

Webassembly.

Mozilla, Fastly, Intel e Red Hat se uniram para desenvolver tecnologias que fazem Webassembly. uma plataforma universal para executar o código com segurança em qualquer infraestrutura, sistema operacional e dispositivo. Para o desenvolvimento conjunto do runtime e compiladores, o que permite o uso do WebAssembly não apenas em navegadores da web, foi formada a comunidade Bytecode Alliance.

Para criar programas portáteis entregue no formato WebAssembly que pode ser executado fora do navegador, propõe-se usar a API WASI (Interface de sistema WebAssembly), que fornece interfaces de programa para interação direta com o sistema operacional (API POSIX para trabalhar com arquivos, sockets, etc.).

Uma característica distintiva do modelo de execução de aplicativos que usam WASI está lançando em um ambiente sandbox para isolar do sistema principal e a utilização de um mecanismo de segurança baseado na gestão da capacidade, para ações com cada um dos recursos (arquivos, diretórios, sockets, chamadas de sistema, etc.) a aplicação deve ter a autorização correspondente (o acesso é apenas fornecido para a funcionalidade declarada).

um dos objetivos da aliança criado é resolver o problema de difusão de aplicações modulares modernas com muitas dependências. Em tais aplicativos, cada dependência pode ser uma fonte potencial de vulnerabilidades ou ataques. Obter o controle de dependência permite que você obtenha controle sobre todos os aplicativos associados a ele.

Os membros da Bytecode Alliance pretendem preparar uma solução completa para a execução segura de aplicativos WebAssembly que inicialmente não são confiáveis.

Para proteção, propõe-se usar o conceito de nanoprocessos, em que cada módulo de dependência é separado em um módulo WebAssembly isolado separado, cuja autoridade está configurada para ligar apenas a este módulo (por exemplo, uma biblioteca para sequências de processamento não pode abrir um soquete ou arquivo de rede).

Ao contrário da separação do processo, Os gerenciadores WebAssembly são leves e quase não requerem recursos adicionais Além disso, a interação entre os manipuladores não é muito mais lenta do que chamar funções comuns.

Para o desenvolvimento conjunto, vários projetos relacionados ao WebAssembly, anteriormente desenvolvidos separadamente pelas empresas fundadoras da aliança, foram transferidos para a ala da Bytecode Alliance:

  • Era tempo: Um tempo de execução para executar aplicativos WebAssembly com extensões WASI como aplicativos autônomos regulares. Ele suporta a inicialização do bytecode WebAssembly usando um utilitário de linha de comando especial e projetando arquivos executáveis ​​prontos para uso (o wasmtime é integrado ao aplicativo como uma biblioteca).
  • Lucette: é um compilador e um tempo de execução para executar programas no formato WebAssembly. Uma característica distintiva do Lucet é o uso de uma compilação preventiva completa (AOT, inicial) no código de máquina adequado para execução direta em vez de JIT. O projeto foi desenvolvido pela Fastly e otimizado para consumir o mínimo de recursos e lançar rapidamente novas instâncias. Como parte de um projeto conjunto, está planejado mudar o compilador Lucet para usar o Wasmtime como base.
  • WAMR (Web Assembly Micro Runtime): es outro tempo de execução para executar WebAssembly, originalmente desenvolvido pela Intel para uso em dispositivos IoT. WAMR ele é otimizado para consumo mínimo de recursos e pode ser usado em dispositivos com uma pequena quantidade de RAM. O projeto inclui um intérprete e uma máquina virtual para executar o bytecode WebAssembly, uma API (um subconjunto da Libc) e ferramentas para gerenciar aplicativos dinamicamente.
  • elevador de guindaste: É um gerador de código que traduz uma representação intermediária independente de hardware em código de máquina executável otimizado para plataformas de hardware específicas. O Cranelift suporta paralelização de compilação de funções para geração de saída muito rápida, permitindo que você o use para criar compiladores JIT (JIT baseado em Cranelift é usado na máquina virtual Wasmtime).
  • WASI: um implementação autônoma da API WASI (Web Assembly System Interface) para organizar a interação com o sistema operacional.
  • carga-wasi: un módulo para gerenciador de pacotes de carga que implementa um comando para compilar o código Rust no bytecode WebAssembly usando a interface WASI para usar WebAssembly fora do navegador.
  • wat e wasmparser: eles são analisadores para analisar texto (WAT, WAST) e representações binárias do código de bytes WebAssembly.

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   01101001b dito

    "Ao contrário da separação de processos, os manipuladores WebAssembly são leves e quase não requerem recursos adicionais" ...
    Com Mozilla e Red Hat na mistura, essa observação de "leve e quase não requer recursos adicionais" vai ser uma piada fenomenal xD