Mozilla, Fastly, Intel ma Red Hat faʻalauiloa WebAssembly o se faʻavae mo le faʻaogaina lautele

Mozilla, Fastly, Intel ma Red Hat lotogatasi ana taumafaiga i le atina'eina o tekinolosi e fesoasoani e avea WebAssembly o se tulaga lautele mo le faʻatinoina o tulafono faʻamaonia i soʻo se atinaʻe, faiga faʻaogaina, poʻo se masini. Ua fausia se faʻalapotopotoga mo le atinaʻeina faʻatasi o taimi taʻavale ma tagata faʻapipiʻi e faʻatagaina le faʻaogaina o le WebAssembly e le gata i luga o upega tafaʻilagi. Bytecode Alliance.

Ina ia fatuina polokalame feaveaʻi e tuʻuina atu i le WebAssembly format e mafai ona faʻatinoina i fafo atu o le masini, matou te fautua atu e faʻaaoga le API WASI (WebAssembly System Interface), lea e maua ai fesoʻotaʻiga faʻapipiʻi mo fesoʻotaʻiga tuusaʻo ma le faiga faʻaogaina (POSIX API mo le galue i faila, sockets, etc.). O se tulaga faʻapitoa o le faʻataʻitaʻiga faʻataʻitaʻiga o talosaga e faʻaaoga ai le WASI o loʻo latou tamomoe i totonu o le sandbox siosiomaga mo le vavae ese mai le faiga autu ma faʻaogaina se masini saogalemu e faʻavae i luga ole pulega gafatia mo gaioiga ma punaoa taʻitasi (faila, directories, sockets, system calls. , ma isi) o le talosaga e tatau ona tuʻuina atu faʻatagaga talafeagai (naʻo le avanoa i le faʻaalia o galuega e tuʻuina atu).

Tasi o sini O le soʻotaga na faia o se fofo i le faʻafitauli o le tufatufaina atu o talosaga faʻaonaponei faʻaonaponei ma le tele o faʻalagolago. I ia talosaga, so'o se fa'alagolago e mafai ona avea ma fa'apogai fa'aletonu po'o osofa'iga. O le pulea o se fa'alagolago e mafai ai ona e maua le puleaina o talosaga uma e fa'atatau i ai. O le fa'alagolago i le talosaga e fa'aalia otometi le fa'atuatuaina i fa'alagolago uma, ae o fa'alagolago e masani ona atia'e ma tausia e vaega lona tolu o latou gaioiga e le mafai ona pulea. O sui o le Bytecode Alliance o loʻo faʻamoemoe e tuʻuina atu se fofo atoatoa mo le saogalemu o le faʻatinoina o talosaga a le WebAssembly e le faʻatuatuaina.

Mo le puipuiga, ua fautuaina e faʻaaoga le manatu o nanoprocesses, lea e vavae ese ai vaega taʻitasi taʻitasi i totonu o se WebAssembly module tuʻufaʻatasia, o malosiaga o loʻo faʻatulagaina e naʻo lenei module (mo se faʻataʻitaʻiga, o se faletusi mo le faʻaogaina o manoa o le a le mafai ona tatala se socket network po'o se faila). E le pei o le vavaeeseina o le faagasologa, WebAssembly handers e mama ma e toetoe lava a le manaʻomia ni punaoa faʻaopoopo - fegalegaleai i le va o tagata faʻatautaia e le sili atu lemu nai lo le valaʻau i galuega masani. O le vavaeeseina e mafai ona faia e le gata i le tulaga o modules taʻitasi, ae faʻapea foʻi i le tulaga o vaega o modules e, mo se faʻataʻitaʻiga, e manaʻomia le galulue faatasi ma vaega masani manatua

O mana o lo'o talosagaina e mafai ona fa'amautu uma i le tulaga o le fa'alagolago ia i latou lava, ma tu'uina atu i fa'alagolago i luga o le filifili e matua modules (punaoa i WASI e feso'ota'i ma se ituaiga fa'apitoa o faila fa'amatala - gafatia). Mo se faʻataʻitaʻiga, e mafai ona tuʻuina atu i se module le avanoa e maua ai se lisi faʻapitoa ma telefoni feaveaʻi, ma afai e faʻafefeteina le atinaʻeina o atinaʻe o le module pe faʻaalia se faʻafitauli, i le taimi o se osofaʻiga, o le a faʻatapulaʻaina le avanoa i nei punaoa. O ta'utinoga a puna'oa a le au faufale e mafai ona avea ma fa'ailoga o gaioiga masalomia, e pei o le taimi e talosagaina ai e se vaega e fa'agasolo ai tusitusiga se fa'atagaga e tatala ai se feso'ota'iga. O fa'atagaga na fa'atulaga muamua e siaki ma afai e suia, o le fa'alagolago e te'ena le utaina o le fa'alagolago se'i vagana ua fa'afouina le saini fa'apitonu'u.

Mo atinae soofaatasi i lalo o le apaau o le Bytecode Alliance faaliliuina tele e fesoʻotaʻi ma WebAssembly galuega faatino, na muai atiaeina e kamupani faʻavae a le soʻotaga:

  • Taimi — Taimi fa'agasolo mo le fa'agaioia o talosaga a le WebAssembly fa'atasi ai ma fa'aopoopoga WASI o ni talosaga tu'utasi masani. E lagolagoina uma le faʻalauiloaina o WebAssembly bytecode e faʻaaoga ai se faʻaoga faʻapitoa laina faʻatonu ma fesoʻotaʻi faila faʻapipiʻi saunia (wasmtime ua fausia i totonu o le talosaga o se faletusi). O le Wasmtime o loʻo i ai se fausaga faʻalelei fetuutuunai e mafai ai e oe ona fuaina le taimi faʻatulagaina mo faʻaoga eseese, mo se faʻataʻitaʻiga, e mafai ona e fatuina se faʻasologa faʻapipiʻi mo masini e faʻatapulaʻaina punaoa;
  • Luset - faʻapipiʻi ma taʻaloga mo le faʻatinoina o polokalame i le WebAssembly format. Tu'ufa'atasi uiga Lucet o le faʻaogaina o le faʻapipiʻiina atoatoa (AOT, i luma-o-taimi) nai lo le JIT i le numera masini e talafeagai mo le faʻatinoina saʻo. O le poloketi na atiaʻe e le Fastly ma ua sili ona lelei e faʻaaoga ai ni punaoa laiti ma faʻalauiloa faʻamatalaga fou vave (Faʻaaoga vave Lucet i totonu o le ao faʻaogaina masini komepiuta e faʻaogaina le WebAssembly mo tagata e faʻatautaia i luga o talosaga taʻitasi). I le avea ai o se vaega o le poloketi faʻatasi, o le Lucet compiler ua fuafua e faʻaliliu e faʻaaoga Wasmtime e fai ma faavae;
  • AOGA (WebAssembly Micro Runtime) o se isi taimi fa'atino mo le fa'atinoina o le WebAssembly, na fausia muamua e Intel mo le fa'aoga i masini Initaneti o Mea. WAMR e sili ona lelei mo le faʻaaogaina o punaoa ma e mafai ona faʻaogaina i masini e iai sina vaega ole RAM. O le poloketi e aofia ai se fa'aliliuupu ma se masini komepiuta mo le fa'atinoina o le WebAssembly bytecode, o se API (se subset o le Libc) ma meafaigaluega mo le fa'atonutonuina o talosaga;
  • Si'i ti'eti'e - o se fa'atupu fa'ailoga e fa'aliliuina ai se fa'atusa tuto'atasi mai fa'ata'ita'iga o masini i totonu o le fa'aogaina o masini fa'aogaina e fa'atatau mo fa'atonuga fa'apitoa. E lagolagoina e Cranelift le tutusa o le tuufaatasia o galuega mo le gaosiga vave o taunuuga, lea e mafai ai ona faʻaaogaina e fatu ai JIT compilers (Cranelift-faʻavae JIT o loʻo faʻaaogaina i le Wasmtime virtual machine);
  • WASI masani - se faʻatinoga eseʻese ole WASI (WebAssembly System Interface) API mo le faʻatulagaina o fegalegaleaiga ma le faiga faʻaogaina;
  • uta-wasi - o se module mo le pule o pusa uta o loʻo faʻatinoina se faʻatonuga mo le tuʻufaʻatasia o le Rust code i le WebAssembly bytecode e faʻaaoga ai le WASI interface mo le faʻaogaina o le WebAssembly i fafo atu o le browser;
  • wat и tagata fa'atauva'a — parsers mo le fa'avasegaina o tusitusiga (WAT, WAST) ma fa'atusa binary o WebAssembly bytecode.

I le toe faʻaleleia, WebAssembly e pei o Asm.js, ae eseese i lena mea o se faʻatulagaga binary e le o noatia i le JavaScript ma faʻatagaina le laʻititi laʻititi laʻititi e tuʻufaʻatasia mai gagana eseese polokalame e faʻatinoina i le masini. WebAssembly e le manaʻomia se faʻaputu lapisi aua e faʻaaogaina le faʻaogaina manino o mafaufauga. I le faʻaaogaina o le JIT mo WebAssembly, e mafai ona e ausia tulaga faʻatinoga latalata ile tulafono faʻapitoa. Faatasi ai ma sini autu a WebAssembly o le faʻamautinoaina o le feaveaʻi, faʻataʻitaʻiga amio ma le faʻatinoina o tulafono tutusa i luga o tulaga eseese.

puna: opennet.ru

Faaopoopo i ai se faamatalaga