Cuireann Mozilla, Fastly, Intel agus Red Hat WebAssembly chun cinn mar ardán le haghaidh úsáid uilíoch

Mozilla, Fastly, Intel agus Red Hat aontaithe a chuid iarrachtaí i dteicneolaíochtaí a fhorbairt a chuidíonn le WebAssembly a dhéanamh mar ardán uilíoch chun cód a chur i bhfeidhm go slán thar aon bhonneagar, córas oibriúcháin nó feiste. Cruthaíodh pobal chun am rite agus tiomsaitheoirí a chomhfhorbairt a cheadaíonn úsáid WebAssembly ní hamháin i mbrabhsálaithe gréasáin Comhaontas Bytecode.

Chun cláir iniompartha a chruthú a sheachadtar i bhformáid WebAssembly is féidir a fhorghníomhú lasmuigh den bhrabhsálaí, molaimid an API a úsáid WASI (Comhéadan Córas WebAssembly), a sholáthraíonn comhéadain bogearraí le haghaidh idirghníomhú díreach leis an gcóras oibriúcháin (POSIX API le haghaidh oibriú le comhaid, soicéid, etc.). Gné shainiúil de mhúnla forghníomhaithe na n-iarratas ag baint úsáide as WASI ná go ritheann siad i dtimpeallacht bosca gainimh le haghaidh aonrú ón bpríomhchóras agus go n-úsáideann siad meicníocht slándála bunaithe ar bhainistiú cumais le haghaidh gníomhartha le gach ceann de na hacmhainní (comhaid, eolairí, soicéid, glaonna córais , etc.) ní mór na ceadanna cuí a thabhairt don iarratas (ní thugtar ach rochtain ar an bhfeidhmiúlacht dhearbhaithe).

Ceann de spriocanna Is réiteach é an comhghuaillíocht chruthaithe ar an bhfadhb a bhaineann le hiarratais modúlach nua-aimseartha a dháileadh le líon mór spleáchais. In iarratais den sórt sin, is féidir le gach spleáchas a bheith ina fhoinse féideartha leochaileachtaí nó ionsaithe. Má ghlactar le spleáchas is féidir leat smacht a fháil ar gach feidhmchlár a bhaineann leis. Tugann muinín san fheidhmchlár le tuiscint go huathoibríoch go bhfuil muinín agat as gach spleáchas, ach is minic a fhorbraíonn agus a chothaíonn spleáchais ag foirne tríú páirtí nach féidir a gcuid gníomhaíochtaí a rialú. Tá sé beartaithe ag baill Bytecode Alliance réiteach iomlánaíoch a sholáthar chun feidhmchláir WebAssembly nach bhfuil iontaofa ó dhúchas a chur i gcrích go sábháilte.

Ar mhaithe le cosaint, tá sé beartaithe coincheap na nanaphróisis a úsáid, ina bhfuil gach modúl spleáchais scartha isteach i modúl WebAssembly atá scoite amach go leithleach, a bhfuil a chumhachtaí socraithe maidir leis an modúl seo amháin (mar shampla, ní bheidh leabharlann le haghaidh teaghráin a phróiseáil. bheith in ann soicéad líonra nó comhad a oscailt). Murab ionann agus scaradh próisis, tá láimhseálaithe WebAssembly éadrom agus níl beagnach aon acmhainní breise ag teastáil uathu - níl an idirghníomhaíocht idir láimhseálaithe i bhfad níos moille ná gnáthfheidhmeanna a ghlaoch. Is féidir scaradh a dhéanamh, ní hamháin ar leibhéal na modúl aonair, ach freisin ar leibhéal na ngrúpaí modúl ar gá, mar shampla, oibriú le réimsí cuimhne coitianta

Is féidir na cumhachtaí iarrtha a chinneadh ag leibhéal na spleáchais féin, agus iad a tharmligean chuig spleáchais feadh an tslabhra de réir modúil tuismitheora (baineann acmhainní in WASI le cineál speisialta tuairisceora comhaid - cumas). Mar shampla, is féidir an cumas a tharmligean do mhodúl rochtain a fháil ar eolaire sonrach agus ar ghlaonna córais, agus má chuirtear bonneagar forbartha an mhodúil i gcontúirt nó má shainaithnítear leochaileacht, le linn ionsaí, beidh rochtain teoranta do na hacmhainní sin amháin. Is féidir le dearbhuithe acmhainne ó chruthaitheoirí modúil a bheith ina dtáscaire ar ghníomhaíocht amhrasach, mar shampla nuair a iarrann modúl próiseála téacs cead chun nasc líonra a oscailt. Seiceáiltear na ceadanna a socraíodh ar dtús agus má athraíonn siad, diúltaítear don luchtú spleáchais go dtí go nuashonraítear síniú an mhodúil áitiúil.

Le haghaidh comhfhorbairt faoi sciathán an Bytecode Alliance aistrithe bhain roinnt acu le WebAssembly tionscadail, arna fhorbairt ar leithligh roimhe seo ag cuideachtaí bunaithe an chomhghuaillíochta:

  • Am Wasm — am rite chun feidhmchláir WebAssembly a rith le síntí WASI mar fheidhmchláir neamhspleácha rialta. Tacaíonn sé le bytecode WebAssembly a sheoladh ag baint úsáide as fóntais líne ordaithe speisialta agus comhaid inrite réamhdhéanta a nascadh (tá am wasm ionsuite san fheidhmchlár mar leabharlann). Tá struchtúr modúlach solúbtha ag Wasmtime a ligeann duit an t-am rite a scála le haghaidh feidhmeanna éagsúla, mar shampla, is féidir leat leagan scriosta a chruthú le haghaidh feistí a bhfuil acmhainní teoranta acu;
  • Lúcás — tiomsaitheoir agus am rite chun cláir a chur i gcrích i bhformáid WebAssembly. Sainiúil gné Is éard atá i Lucet ná úsáid a bhaint as tiomsú réamh-mheasta lán-chuimsitheach (AOT, roimh am) in ionad JIT i gcód meaisín atá oiriúnach lena fhorghníomhú go díreach. D'fhorbair Fastly an tionscadal agus tá sé optamaithe chun acmhainní íosta a ithe agus cásanna nua a sheoladh go han-tapa (Úsáideann Fastly Lucet in inneall ríomhaireachta imeall néal a úsáideann WebAssembly do láimhseálaithe a sheoltar ar gach iarratas). Mar chuid den chomhthionscadal, tá sé beartaithe an tiomsaitheoir Lucet a thiontú chun Wasmtime a úsáid mar bhunáit;
  • WAMR (WebAssembly Micro Runtime) am rite eile chun WebAssembly a chur i gcrích, a d'fhorbair Intel ar dtús le húsáid i bhfeistí Internet of Things. Tá WAMR optamaithe le haghaidh tomhaltas íosta acmhainní agus is féidir é a úsáid ar fheistí le méid beag RAM. Áirítear leis an tionscadal ateangaire agus meaisín fíorúil chun seachchód WebAssembly a fhorghníomhú, API (fo-thacar de Libc) agus uirlisí do bhainistiú feidhmchlár dinimiciúil;
  • Ardaitheoir crann — gineadóir cóid a aistríonn ionadaíocht idirmheánach atá neamhspleách ar ailtireachtaí crua-earraí go cód meaisín inrite atá optamaithe le haghaidh ardáin chrua-earraí ar leith. Tacaíonn Cranelift le comhthreomhar le tiomsú feidhm le haghaidh giniúint torthaí an-tapa, rud a cheadaíonn é a úsáid chun tiomsaitheoirí JIT a chruthú (úsáidtear JIT bunaithe ar Cranelift i meaisín fíorúil Wasmtime);
  • WASI coitianta — API WASI (Comhéadan Córas Comhthionól Gréasáin) a chur chun feidhme ar leithligh chun idirghníomhú leis an gcóras oibriúcháin a eagrú;
  • lasta-wasi — modúl don bhainisteoir pacáiste lasta a chuireann ordú i bhfeidhm chun cód Rust a thiomsú i seachchód WebAssembly trí úsáid a bhaint as comhéadan WASI chun WebAssembly a úsáid lasmuigh den bhrabhsálaí;
  • wat и wasmparser — parsálaithe chun téacs a pharsáil (WAT, WAST) agus léiriúcháin dhénártha de sheachchód WebAssembly.

Chun achoimriú, tá WebAssembly go leor cosúil le Asm.js, ach difriúil sa mhéid is gur formáid dhénártha í nach bhfuil ceangailte le JavaScript agus go gceadaítear cód idirmheánach ísealleibhéil a tiomsaíodh as teangacha ríomhchlárúcháin éagsúla a fhorghníomhú sa bhrabhsálaí. Níl bailitheoir truflais ag teastáil ó WebAssembly toisc go n-úsáideann sé bainistíocht cuimhne sainráite. Trí JIT a úsáid le haghaidh WebAssembly, is féidir leat leibhéil feidhmíochta atá gar don chód dúchais a bhaint amach. I measc phríomhspriocanna WebAssembly tá inaistritheacht, iompar intuartha agus forghníomhú cód comhionann ar ardáin éagsúla a chinntiú.

Foinse: oscailtenet.ru

Add a comment