Mozilla, Fastly, Intel uye Red Hat inosimudzira WebAssembly sepuratifomu yekushandisa pasi rose

Mozilla, Nekukurumidza, Intel uye Red Hat vakabatana kuedza kwayo mukugadzira matekinoroji anobatsira kuita kuti WebAssembly ive yepasirese chikuva chekuchengetedza kodhi kuuraya pane chero zvivakwa, inoshanda sisitimu, kana mudziyo. Nharaunda yakaumbwa yekubatana kwekusimudzira nguva yekumhanya uye vagadziri vanobvumira kushandiswa kweWebAssembly kwete mumabhurawuza chete. Bytecode Alliance.

Kugadzira mapurogiramu anotakurika akaunzwa muWebAssembly fomati inogona kuitwa kunze kwebrowser, isu tinokurudzira kushandisa iyo API. WASI (WebAssembly System Interface), iyo inopa mashandisirwo esoftware yekudyidzana kwakananga neiyo inoshanda sisitimu (POSIX API yekushanda nemafaira, zvigadziko, nezvimwewo). Chinhu chinosiyanisa chemuenzaniso wekuita wekushandisa uchishandisa WASI ndechekuti ivo vanomhanya munzvimbo yejecha rejecha kuti vazviparadzanise kubva kune huru sisitimu uye vanoshandisa nzira yekuchengetedza inoenderana nekugona manejimendi ezviitwa neimwe yezviwanikwa (mafaira, madhairekitori, zvigadziko, system mafoni. , nezvimwewo) chikumbiro chinofanirwa kupihwa mvumo dzakakodzera (kungowana chete kwekuita kwakaziviswa kunopihwa).

Imwe ye zvinangwa Iyo yakagadzirwa mubatanidzwa ndiyo mhinduro kudambudziko rekugovera yemazuva ano modular application ine nhamba huru yekutsamira. Mune maapplication akadai, kutsamira kwese kunogona kuve kukonzeresa kusagadzikana kana kurwiswa. Kutora kutonga kwekutsamira kunobvumira iwe kuti uwane kutonga kwese maapplication ane chekuita nawo. Kuvimba mukushandisa kunoreva kuvimba mune zvese zvinotsamira, asi kutsamira kunowanzo gadzirwa uye kuchengetedzwa nevechitatu-bato zvikwata izvo zviitwa zvisingagone kudzorwa. Nhengo dzeBytecode Alliance dzinovavarira kupa mhinduro yakazara yekushandiswa kwakachengeteka kweWebAssembly zvikumbiro zvisina kuvimbika.

Nekudzivirira, zvinokurudzirwa kushandisa pfungwa ye nanoprocesses, umo modhi yega yega yekutsamira inopatsanurwa kuita yakaparadzana yega WebAssembly module, masimba ayo akaiswa anoenderana chete nemodule iyi (semuenzaniso, raibhurari yekugadzira tambo haizoiti. kukwanisa kuvhura network socket kana faira). Kusiyana nekuparadzaniswa kwemaitiro, WebAssembly vanobata vane huremu uye vanoda zvimwe zviwanikwa - kudyidzana pakati pevabati hakusi kunonoka kupfuura kudana mabasa akajairwa. Kuparadzanisa kunogona kuitwa kwete chete pamwero wemamodule ega, asiwo pamwero wemapoka emamodule ayo, semuenzaniso, anoda kushanda nenzvimbo dzakajairwa dzekurangarira.

Iwo masimba akakumbirwa anogona kutariswa ese ari padanho rezvitsamira ivo pachavo, uye kupihwa kune vanotsamira pacheni nemamodule evabereki (zvishandiso muWASI zvakabatana nemhando yakakosha yefaira descriptor - kugona). Semuenzaniso, moduru inogona kupihwa kugona kuwana chaiyo dhairekitori uye masisitimu mafoni, uye kana iyo module yekuvandudza zvivakwa ikakanganiswa kana njodzi ichionekwa, panguva yekurwiswa, kuwana kunongogumira kune izvi zviwanikwa. Kuziviswa kwezviwanikwa nevagadziri vemodule kunogona kuve chiratidzo chekufungidzira chiitiko, senge kana mameseji ekugadzirisa mameseji achikumbira mvumo yekuvhura network yekubatanidza. Mamvumo ekutanga akaiswa anotariswa uye kana achinja, kutsamira kurodha kunorambwa kudzamara siginecha yemodhiyo yagadziridzwa.

Yekuvandudza pamwe pasi pebapiro reBytecode Alliance rakaturikirwa akati wandei ane hukama neWebAssembly mapurojekiti, yakamboparadzaniswa nemakambani ekutanga emubatanidzwa:

  • Nguva yemasikati - nguva yekumhanya yekumhanyisa WebAssembly application ine WASI yekuwedzera seyakajairwa yakamira-yega application. Inotsigira ese ari maviri kuvhura WebAssembly bytecode uchishandisa yakakosha mutsara mutsara utility uye kubatanidza akagadzirira-akagadzirwa eecutable mafaera (wasmtime yakavakirwa mukushandisa seraibhurari). Wasmtime ine inoshanduka modular dhizaini iyo inokutendera iwe kuyera iyo yekumhanyisa nguva yeakasiyana maapplication, semuenzaniso, unogona kugadzira yakabviswa-pasi vhezheni yemidziyo ine mashoma zviwanikwa;
  • Lucet - compiler uye nguva yekumhanya yekuita zvirongwa muWebAssembly fomati. Distinctive feature Lucet iko kushandiswa kwekuzara-kwakazara kwekufungidzira kuunganidza (AOT, kumberi-kwenguva) pachinzvimbo cheJIT mumashini kodhi yakakodzera kuurayiwa kwakananga. Iyo purojekiti yakagadziridzwa neFastly uye yakagadziridzwa kushandisa zviwanikwa zvidiki uye kuvhura zviitiko zvitsva nekukurumidza (Nekukurumidza inoshandisa Lucet mune yegore kumucheto komputa injini inoshandisa WebAssembly yevabati vanotangwa pachikumbiro chega chega). Sechikamu chepurojekiti yakabatana, iyo Lucet compiler yakarongwa kushandurwa kuti ishandise Wasmtime sehwaro;
  • WAMR (WebAssembly Micro Runtime) imwe nguva yekumhanya yekuita WebAssembly, yakatanga kugadzirwa neIntel kuti ishandiswe muInternet yeZvinhu zvishandiso. WAMR yakagadziridzwa kuti ishandiswe zvishoma zviwanikwa uye inogona kushandiswa pamidziyo ine ishoma RAM. Iyo purojekiti inosanganisira muturikiri uye muchina chaiwo wekuita WebAssembly bytecode, API (a subset yeLibc) uye maturusi eiyo dynamic application manejimendi;
  • crane lift - kodhi jenareta iyo inoshandura inomiririra yepakati yakazvimirira yezvivakwa zvehardware kuita kodhi yemuchina inogoneka yakagadziridzwa kune chaiyo hardware mapuratifomu. Cranelift inotsigira parallelization yebasa rekubatanidza kune inokurumidza mhedzisiro chizvarwa, iyo inobvumira kuti ishandiswe kugadzira JIT compilers (Cranelift-based JIT inoshandiswa muWasmtime virtual muchina);
  • WASI common -Kuitwa kwakasiyana kweWASI (WebAssembly System Interface) API yekuronga kupindirana neiyo inoshanda sisitimu;
  • cargo-wasi - module yeCargo package maneja inoshandisa murairo wekunyora Rust kodhi muWebAssembly bytecode uchishandisa iyo WASI interface yekushandisa WebAssembly kunze kwebrowser;
  • Wat ΠΈ wasmparser - mapars ekunyora zvinyorwa (WAT, WAST) uye mabhinari anomiririra yeWebAssembly bytecode.

Kudzokorora, WebAssembly yakafanana neAsm.js, asi zvakasiyana mukuti ibhinari fomati isina kusungirirwa kuJavaScript uye inobvumira yakaderera-yepakati kodhi kodhi inounganidzwa kubva kwakasiyana mitauro yepurogiramu kuti iitwe mubrowser. WebAssembly haidi muunganidzi wemarara nekuti inoshandisa yakajeka ndangariro manejimendi. Nekushandisa JIT yeWebAssembly, unogona kuwana mazinga ekuita padyo nekodhi yeko. Pakati pezvinangwa zvikuru zveWebAssembly kuve nechokwadi chekutakurika, hunhu hunofungidzirwa uye kufanana kwekodhi kuuraya pamapuratifomu akasiyana.

Source: opennet.ru

Voeg