Mozilla, Fastly, Intel i Red Hat promują WebAssembly jako uniwersalną platformę

WebAssembly

Mozilla, Fastly, Intel i Red Hat połączyły siły rozwijać się technologie, które tworzą WebAssembly uniwersalna platforma aby bezpiecznie uruchamiać kod w dowolnej infrastrukturze, system operacyjny i urządzenie. W celu wspólnego rozwoju środowiska uruchomieniowego i kompilatorów, które umożliwiają korzystanie z WebAssembly nie tylko w przeglądarkach internetowych, powstała społeczność Bytecode Alliance.

Tworzenie programów przenośnych dostarczane w formacie WebAssembly które można uruchomić poza przeglądarką, proponuje się użycie WASI API (Interfejs systemu WebAssembly), który udostępnia interfejsy programowe do bezpośredniej interakcji z systemem operacyjnym (API POSIX do pracy z plikami, gniazdami itp.).

Charakterystyczna cecha modelu wykonywania aplikacji korzystających z WASUruchamiam w środowisku piaskownicy aby odizolować się od systemu głównego i zastosować mechanizm bezpieczeństwa oparty na zarządzaniu pojemnością, dla działań z każdym z zasobów (plików, katalogów, gniazd, wywołań systemowych itp.) aplikacja musi mieć odpowiednie uprawnienia (dostęp jest możliwy tylko do deklarowanej funkcjonalności).

jeden celów sojuszu Utworzony jest rozwiązanie problemu dyfuzji nowoczesnych aplikacji modułowych z wieloma zależnościami. W takich aplikacjach każda zależność może być potencjalnym źródłem luk w zabezpieczeniach lub ataków. Uzyskanie kontroli zależności pozwala na przejęcie kontroli nad wszystkimi powiązanymi z nim aplikacjami.

Członkowie Bytecode Alliance zamierzają przygotować kompletne rozwiązanie do bezpiecznego wykonywania niezaufanych aplikacji WebAssembly.

Dla ochrony, proponuje się wykorzystanie koncepcji nanoprocesus, w których każdy moduł zależności jest oddzielony w oddzielnym, izolowanym module WebAssembly, którego uprawnienie jest skonfigurowane do tworzenia powiązań tylko z tym modułem (na przykład biblioteka do przetwarzania łańcuchów nie może otworzyć gniazda sieciowego ani pliku).

W przeciwieństwie do separacji procesów, Programy obsługi WebAssembly są lekkie i prawie nie wymagają dodatkowych zasobów Ponadto interakcja między programami obsługi nie jest dużo wolniejsza niż wywoływanie zwykłych funkcji.

W celu wspólnego rozwoju kilka projektów związanych z WebAssembly, wcześniej opracowanych osobno przez firmy założycielskie sojuszu, zostało przeniesionych pod skrzydła Bytecode Alliance:

  • był czas: środowisko uruchomieniowe do uruchamiania aplikacji WebAssembly z rozszerzeniami WASI jako zwykłe samodzielne aplikacje. Obsługuje uruchamianie kodu bajtowego WebAssembly za pomocą specjalnego narzędzia wiersza poleceń i projektowanie gotowych do użycia plików wykonywalnych (program wasmtime jest wbudowany w aplikację jako biblioteka).
  • Luceta: jest kompilator i środowisko uruchomieniowe do uruchamiania programów w formacie WebAssembly. Charakterystyczną cechą Luceta jest użycie pełnej kompilacji prewencyjnej (AOT, z góry) na kodzie maszynowym, nadającej się do bezpośredniego wykonania zamiast JIT. Projekt został opracowany przez Fastly i zoptymalizowany tak, aby zużywał jak najmniej zasobów i szybko uruchamiał nowe instancje.W ramach wspólnego projektu planowana jest zmiana kompilatora Lucet, aby używał Wasmtime jako bazy.
  • WAMR (Mikrośrodowisko uruchomieniowe Web Assembly): es kolejny runtime do uruchomienia WebAssembly, pierwotnie opracowany przez firmę Intel do użytku w urządzeniach IoT. WAMR jest zoptymalizowany pod kątem minimalnego zużycia zasobów i może być używany na urządzeniach z niewielką ilością pamięci RAM. Projekt obejmuje interpreter i maszynę wirtualną do uruchamiania kodu bajtowego WebAssembly, API (podzbiór Libc) oraz narzędzia do dynamicznego zarządzania aplikacjami.
  • Dźwig dźwigowy: es generator kodu, który tłumaczy niezależną od sprzętu reprezentację pośrednią na kod maszynowy plik wykonywalny zoptymalizowany dla określonych platform sprzętowych. Cranelift obsługuje zrównoleglenie kompilacji funkcji w celu bardzo szybkiego generowania danych wyjściowych, umożliwiając użycie go do tworzenia kompilatorów JIT (JIT oparty na Cranelift jest używany w maszynie wirtualnej Wasmtime).
  • CZY BYŁEM: u samodzielna implementacja WASI API (Web Assembly System Interface) do organizowania interakcji z systemem operacyjnym.
  • ładunek-wasi: un moduł dla menedżera paczek cargo który implementuje polecenie skompilowania kodu Rusta do kodu bajtowego WebAssembly przy użyciu interfejsu WASI w celu użycia zestawu WebAssembly poza przeglądarką.
  • wat i wasmparser: syn parsery do analizy tekstu (WAT, WAST) i binarne reprezentacje kodu bajtu zestawu WebAssembly.

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   01101001b powiedział

    „W przeciwieństwie do separacji procesów, programy obsługi WebAssembly są lekkie i prawie nie wymagają dodatkowych zasobów” ...
    Z Mozillą i Red Hat w mieszance, ta obserwacja „lekkości i prawie żadnych dodatkowych zasobów” będzie fenomenalnym żartem xD