Mozilla, Fastly, Intel iyo Koofiyada Cas waxay kor u qaadaan WebAssembly sidii madal isticmaalka caalamiga ah

Mozilla, Degdeg ah, Intel iyo Koofiyada Cas midoobeen Dadaalkeeda ku aaddan horumarinta tignoolajiyada ka caawiya samaynta WebAssembly madal caalami ah oo loogu talagalay fulinta kood ammaan ah dhammaan kaabayaasha, nidaamka hawlgalka, ama qalab kasta. Bulsho ayaa loo sameeyay horumarinta wadajirka ah ee runtime iyo compilers kuwaas oo u oggolaanaya isticmaalka WebAssembly maaha kaliya daalacashada webka. Isbahaysiga Bytecode.

Si loo abuuro barnaamijyo la qaadi karo oo lagu bixiyo qaabka WebAssembly oo lagu fulin karo meel ka baxsan browserka, waxaan soo jeedineynaa isticmaalka API WASI (WebAssembly System Interface), kaas oo siiya is-dhexgalka software ee isdhexgalka tooska ah ee nidaamka hawlgalka (POSIX API ee la shaqaynta faylasha, saldhigyada, iwm.). Muuqaal gaar ah oo ka mid ah qaabka fulinta ee codsiyada iyadoo la adeegsanayo WASI waa inay ku shaqeeyaan jawi bacaad lagu lisay si ay uga go'doomiyaan nidaamka ugu weyn oo ay isticmaalaan hab ammaan oo ku salaysan maaraynta kartida waxqabadyada mid kasta oo ka mid ah ilaha (faylalka, hagaha, saldhigyada, wicitaanada nidaamka , iwm.) Codsiga waa in la siiyaa ogolaanshaha ku habboon (kaliya gelitaanka shaqada la shaaciyay ayaa la bixiyaa).

Mid ka mid ah gool Isbahaysiga la abuuray ayaa xal u ah dhibaatada qaybinta codsiyada casriga ah ee casriga ah oo leh tiro badan oo ku xiran. Codsiyada noocaan ah, ku-tiirsanaanta kasta waxay noqon kartaa ilo nugul ama weeraro. Xakamaynta ku tiirsanaanta waxay kuu ogolaanaysaa inaad gacanta ku dhigto dhammaan codsiyada la xidhiidha. Kalsoonida codsiga waxay si toos ah u tusinaysaa kalsoonida dhammaan ku-tiirsanaanta, laakiin ku-tiirsanaanta waxaa inta badan horumariya oo ilaaliya kooxo saddexaad oo aan dhaqdhaqaaqooda la xakamayn karin. Xubnaha Isbahaysiga Bytecode waxay damacsan yihiin inay bixiyaan xal dhamaystiran oo loogu talagalay fulinta aaminka ah ee codsiyada WebAssembly ee aan asal ahaan la aamini karin.

Si loo ilaaliyo, waxaa la soo jeediyay in la isticmaalo fikradda nanoprocesses, kaas oo module kasta oo ku tiirsanaanta loo kala qaybiyey module WebAssembly gooni gooni ah, awoodaha kuwaas oo la dejiyey ee la xidhiidha kaliya module this (tusaale, maktabadda loogu talagalay xadhkaha processing ma doono. awood u leh in ay furto godka ama faylka). Si ka duwan habka kala-soocidda, maamulayaasha WebAssembly waa kuwa fudud oo uma baahna ku dhawaad ​​ilo dheeraad ah - isdhexgalka ka dhexeeya maamulayaasha aad ugama gaabinayso wacitaanka hawlaha caadiga ah. Kala soocida waxaa la samayn karaa oo keliya ma aha heerka cutubyada shakhsi ahaaneed, laakiin sidoo kale heerka kooxaha modules kuwaas oo, tusaale ahaan, u baahan in ay la shaqeeyaan meelaha xusuusta caadiga ah.

Awoodaha la codsado waxaa lagu go'aamin karaa labadaba heerka ku tiirsanaanta laftooda waxaana loo wakiishay ku tiirsanaanta silsiladda cutubyada waalidka (allaha ku jira WASI waxay la xiriiraan nooc gaar ah oo tilmaamaya faylka - kartida). Tusaale ahaan, moduleka waxaa loo wakiishay awoodda lagu galo hage gaar ah iyo wicitaannada nidaamka, iyo haddii kaabayaasha horumarinta moduleka la wiiqo ama la ogaado nuglaanta, inta lagu jiro weerarka, gelitaanka waxay ku koobnaan doontaa oo keliya ilahan. Ku dhawaaqida ilaha ee abuurayaasha moduleka waxay noqon kartaa tilmaame hawlo laga shakiyo, sida marka moduleka habaynta qoraalka uu codsado ogolaanshaha furitaanka isku xirka shabakada. Ogolaanshiyaha markii hore la dejiyay waa la hubiyaa oo haddii ay isbeddelaan, rarista ku-tiirsanaanta waa la diidayaa ilaa saxeexa cutubka maxalliga ah la cusboonaysiinayo.

Horumarinta wadajirka ah ee hoos yimaada garabka Isbahaysiga Bytecode turjumay dhowr la xiriira WebAssembly mashaariicda, oo ay hore si gooni gooni ah u soo saareen shirkadaha asaasay isbahaysiga:

  • Wakhtiga - Runtime ee socodsiinta codsiyada WebAssembly oo leh kordhinta WASI sida codsiyo gooni-gooni joogto ah. Waxay taageertaa labadaba bilaabista WebAssembly bytecode iyadoo la adeegsanayo khadka taliska gaarka ah iyo isku xirka faylalka diyaarsan ee la fulin karo (wasmtime waxaa loo dhisay arjiga maktabad ahaan). Wasmtime wuxuu leeyahay qaab-dhismeed modular ah oo dabacsan kaasoo kuu oggolaanaya inaad cabbirto wakhtiga runtime ee codsiyada kala duwan, tusaale ahaan, waxaad u abuuri kartaa nooc hoos loo dhigay oo loogu talagalay aaladaha leh ilo xaddidan;
  • Lucet - Isku-dubarid iyo runtime oo loogu talagalay fulinta barnaamijyada qaab WebAssembly. Gaar ah muuqaal Lucet waa adeegsiga isku-dubbarid dhammaystiran oo filasho ah (AOT, wakhti ka hor) halkii JIT laga isticmaali lahaa koodka mashiinka ku habboon fulinta tooska ah. Mashruuca waxaa soo saaray Fastly waxaana lagu hagaajiyay in la isticmaalo kheyraadka ugu yar oo si degdeg ah loo bilaabo xaalado cusub (Si degdeg ah u isticmaala Lucet mashiinka xisaabinta cirifka daruuraha kaas oo u isticmaala WebAssembly maamulayaasha bilaabay codsi kasta). Iyada oo qayb ka ah mashruuca wadajirka ah, isku-dariyaha Lucet ayaa la qorsheeyay in loo beddelo isticmaalka Wasmtime saldhig ahaan;
  • WAM (WebAssembly Micro Runtime) waa runtime kale oo lagu fulinayo WebAssembly, asal ahaan waxaa soo saartay Intel si loogu isticmaalo aaladaha Internetka. WAMR waxaa loo habeeyay isticmaalka kheyraadka ugu yar waxaana loo isticmaali karaa aaladaha leh qadar yar oo RAM ah. Mashruucu waxa ku jira turjumaan iyo mishiin dalwad ah oo lagu fulinayo WebAssembly bytecode, API (qayb ka mid ah Libc) iyo agabka maamulka codsiga firfircoon;
  • Qalabaynta - dhaliye kood ah oo u tarjuma matalaadda dhexe ee ka madax bannaan qaab-dhismeedka hardware-ka oo u beddelaya koodka mashiinka la fulin karo ee loo habeeyey qalabyada gaarka ah. Cranelift waxay taageertaa isbarbardhigga isku-darka shaqada ee soo saarista natiijada aadka u degdegga ah, taas oo u oggolaanaysa in loo isticmaalo abuurista kombuyuutarrada JIT (JIT-ku-saleysan Cranelift waxaa loo adeegsadaa mashiinka farsamada ee Wasmtime);
  • WASI caadi ah - hirgalinta gaarka ah ee WASI (WebAssembly System Interface) API ee loogu talagalay abaabulka isdhexgalka nidaamka hawlgalka;
  • xamuul-waasi - Module loogu talagalay maareeyaha xirmada xamuulka kaas oo fulisa amar ku saabsan ururinta koodhka Rust ee WebAssembly bytecode iyadoo la adeegsanayo interface WASI ee isticmaalka WebAssembly ka baxsan browserka;
  • wat и wasparser - Baarayaasha turjumidda qoraalka (WAT, WAST) iyo matalayaasha binary ee WebAssembly bytecode.

Si dib loo soo koobo, WebAssembly waa wax badan sida Asm.js, laakiin kala duwan taas oo ah qaabka binary ee aan ku xidhnayn JavaScript oo u oggolaanaya kood dhexdhexaad ah oo hooseeya oo laga soo ururiyey luuqado kala duwan oo barnaamij ah in lagu fuliyo browserka. WebAssembly uma baahna ururiyaha qashinka sababtoo ah waxay isticmaashaa maaraynta xusuusta cad. Adigoo isticmaalaya JIT ee WebAssembly, waxaad ku gaari kartaa heerar waxqabad oo u dhow koodka hooyo. Waxaa ka mid ah ujeedooyinka ugu muhiimsan ee WebAssembly waa hubinta la qaadi karo, habdhaqan la saadaalin karo iyo fulinta kood isku mid ah oo ku yaal meelo kala duwan.

Source: opennet.ru

Add a comment