I-Mozilla, Fastly, Intel kanye ne-Red Hat ikhuthaza i-WebAssembly njengenkundla yokusetshenziswa kwendawo yonke

I-Mozilla, Fastly, Intel ne-Red Hat ebumbene imizamo yayo yokuthuthukisa ubuchwepheshe obusiza ukwenza i-WebAssembly ibe inkundla yomhlaba wonke yokusetshenziswa kwekhodi evikelekile kuyo yonke ingqalasizinda, isistimu yokusebenza, noma idivayisi. Sekusungulwe umphakathi wokuthuthukisa ngokuhlanganyela isikhathi sokusebenza kanye nabahlanganisi abavumela ukusetshenziswa kweWebAssembly hhayi kuziphequluli zewebhu kuphela. I-Bytecode Alliance.

Ukuze udale izinhlelo eziphathwayo ezilethwa ngefomethi ye-WebAssembly engenziwa ngaphandle kwesiphequluli, siphakamisa ukusebenzisa i-API. WASI (I-WebAssembly System Interface), ehlinzeka nge-software interfaces yokuxhumana okuqondile nesistimu yokusebenza (i-POSIX API yokusebenza ngamafayela, amasokhethi, njll.). Isici esihlukile semodeli yokusebenzisa yezinhlelo zokusebenza ezisebenzisa i-WASI ukuthi zisebenza endaweni ye-sandbox ukuze zihlukaniswe nesistimu enkulu futhi zisebenzisa indlela yokuphepha esekelwe ekulawuleni amandla ezenzo ngensiza ngayinye (amafayela, izinkomba, amasokhethi, amakholi wesistimu. , njll.) isicelo kufanele sinikezwe izimvume ezifanele (ukufinyelela kuphela ekusebenzeni okumenyezelwe okunikezwayo).

Omunye we imigomo I-alliance edaliwe iyisixazululo senkinga yokusabalalisa izinhlelo zokusebenza zesimanje ezinenani elikhulu lokuncika. Kulezi zinhlelo zokusebenza, konke ukuncika kungaba umthombo ongaba sengozini noma ukuhlaselwa. Ukulawula ukuncika kukuvumela ukuthi ulawule zonke izinhlelo zokusebenza ezihlobene nakho. Ukuthembela kuhlelo lokusebenza kusho ukwethemba ngokuzenzakalelayo kukho konke ukuncika, kodwa ukuncika kuvame ukuthuthukiswa futhi kunakekelwe amaqembu ezinkampani zangaphandle imisebenzi yawo engakwazi ukulawulwa. Amalungu e-Bytecode Alliance ahlose ukuhlinzeka ngesixazululo esiphelele sokusetshenziswa okuphephile kwezinhlelo zokusebenza ze-WebAssembly ezingathembekile ngokwemvelo.

Ukuze kuvikelwe, kuhlongozwa ukuthi kusetshenziswe umqondo we-nanoprocesses, lapho imojula ngayinye yokuncika ihlukaniswa ibe module ye-WebAssembly ehlukanisiwe, amandla ayo asethwe maqondana nale mojula kuphela (isibonelo, umtapo wolwazi wokucubungula izintambo ngeke ukwazi ukuvula isokhethi yenethiwekhi noma ifayela). Ngokungafani nokuhlukaniswa kwenqubo, izibambi ze-WebAssembly azisindi futhi azidingi izinsiza ezengeziwe - ukusebenzisana phakathi kwabaphathi akuhamba kancane kunokubiza imisebenzi evamile. Ukuhlukaniswa kungenziwa hhayi kuphela ezingeni lamamojula ngamanye, kodwa futhi ezingeni lamaqembu amamojula, isibonelo, adinga ukusebenza nezindawo zememori ezivamile.

Amandla aceliwe anganqunywa kokubili ezingeni lokuncika ngokwawo, futhi adluliselwe kumamojula angumzali kumamojula angumzali kwabancikile ochungechungeni (izinsiza ku-WASI zihlotshaniswa nohlobo olukhethekile lwesichazi sefayela - amandla). Isibonelo, imojuli inganikezwa ikhono lokufinyelela uhla lwemibhalo oluthile namakholi esistimu, futhi uma ingqalasizinda yokuthuthukisa imojuli isengozini noma kutholwa ubungozi, ngesikhathi sokuhlasela, ukufinyelela kuzokhawulelwa kulezi zinsiza kuphela. Ukumenyezelwa kwensiza ngabadali bemojuli kungaba inkomba yomsebenzi osolisayo, njengalapho imojuli yokucubungula umbhalo icela imvume yokuvula uxhumano lwenethiwekhi. Izimvume ezisethiwe ekuqaleni ziyahlolwa futhi uma zishintsha, ukulayisha okuncikile kuyanqatshwa kuze kube yilapho isiginesha yemojuli yendawo ibuyekezwa.

Ukuze kuthuthukiswe ngokubambisana ngaphansi kwephiko le-Bytecode Alliance kuhunyushwe eziningana ezihlobene WebAssembly amaphrojekthi, eyathuthukiswa ngaphambilini ngokwehlukana izinkampani ezisungula umfelandawonye:

  • Isikhathi sesikhathi β€” isikhathi sokusebenza sokuqalisa izinhlelo zokusebenza zeWebAssembly ezinezandiso ze-WASI njengezinhlelo ezivamile ezizimele zodwa. Isekela kokubili ukwethulwa kwe-WebAssembly bytecode kusetshenziswa insiza ekhethekile yomugqa womyalo nokuxhumanisa amafayela asebenzisekayo enziwe ngomumo (i-wasmtime yakhelwe kuhlelo lokusebenza njengomtapo wezincwadi). I-Wasmtime inesakhiwo se-modular esivumelana nezimo esikuvumela ukuthi ulinganise isikhathi sokusebenza sezinhlelo zokusebenza ezihlukahlukene, isibonelo, ungakha inguqulo ehlutshiwe yamadivayisi anezinsiza ezilinganiselwe;
  • Lucet β€” umdidiyeli nesikhathi sokusebenza sokwenza izinhlelo ngefomethi yeWebAssembly. Ehlukile isici I-Lucet iwukusetshenziswa kokuhlanganiswa okuphelele kokulindela (i-AOT, kusenesikhathi) esikhundleni se-JIT ibe ikhodi yomshini elungele ukwenziwa ngokuqondile. Iphrojekthi yathuthukiswa i-Fastly futhi ilungiselelwe ukusebenzisa izinsiza ezincane futhi yethule izimo ezintsha ngokushesha okukhulu (Ngokushesha isebenzisa i-Lucet enjini yekhompiyutha yamafu esebenzisa i-WebAssembly yezibambi ezethulwe esicelweni ngasinye). Njengengxenye yephrojekthi ehlanganyelwe, i-Lucet compiler ihlelelwe ukuthi iguqulwe ukuze isebenzise i-Wasmtime njengesisekelo;
  • I-WAMR (I-WebAssembly Micro Runtime) ingesinye isikhathi sokusebenza sokusebenzisa i-WebAssembly, eyaqalwa i-Intel ukuze isetshenziswe kumadivayisi e-inthanethi Yezinto. I-WAMR yenzelwe ukusetshenziswa okuncane kwezinsiza futhi ingasetshenziswa kumadivayisi anenani elincane le-RAM. Le phrojekthi ihlanganisa utolika nomshini obonakalayo wokusebenzisa i-WebAssembly bytecode, i-API (i-subset ye-Libc) namathuluzi okuphatha izinhlelo zokusebenza ezinamandla;
  • I-Cranelift - ijeneretha yekhodi ehumusha isethulo esimaphakathi esizimele ngaphandle kwezakhiwo zehadiwe ibe ikhodi yomshini esebenzisekayo elungiselelwe izinkundla ezithile zehadiwe. I-Cranelift isekela ukufana kokuhlanganiswa komsebenzi wokukhiqiza imiphumela esheshayo, evumela ukuthi isetshenziselwe ukwakha abahlanganisi be-JIT (i-JIT esekelwe ku-Cranelift isetshenziswa emshinini we-Wasmtime virtual);
  • I-WASI evamile - ukuqaliswa okuhlukile kwe-WASI (WebAssembly System Interface) API yokuhlela ukusebenzisana nesistimu yokusebenza;
  • cargo-wasi β€” imojula yomphathi wephakheji ye-Cargo esebenzisa umyalo wokuhlanganisa ikhodi ye-Rust ibe yi-WebAssembly bytecode isebenzisa isixhumi esibonakalayo se-WASI ngokusebenzisa i-WebAssembly ngaphandle kwesiphequluli;
  • Wat ΠΈ wasmparser β€” abahlaluli bombhalo wokuhlaziya (WAT, WAST) nokuvezwa okumbambambili kwe-WebAssembly bytecode.

Ukuphindaphinda, i-WebAssembly ifana kakhulu ne-Asm.js, kodwa okuhlukile ngokuthi ifomethi kanambambili engaboshelwe ku-JavaScript futhi ivumela ikhodi emaphakathi yezinga eliphansi ehlanganiswe kusukela ezilimini ezihlukene zokuhlela ukuthi isetshenziswe esipheqululini. I-WebAssembly ayidingi umqoqi kadoti ngoba isebenzisa ukuphathwa kwenkumbulo okusobala. Ngokusebenzisa i-JIT ye-WebAssembly, ungafinyelela amazinga okusebenza eduze nekhodi yomdabu. Phakathi kwezinjongo eziyinhloko ze-WebAssembly ukuqinisekisa ukuphatheka, ukuziphatha okungabikezelwa kanye nokwenziwa kwekhodi efanayo kumapulatifomu ahlukene.

Source: opennet.ru

Engeza amazwana