Bidh Mozilla, Fastly, Intel agus Red Hat a’ brosnachadh WebAssembly mar àrd-ùrlar airson cleachdadh uile-choitcheann

Mozilla, Fastly, Intel agus Red Hat aonaichte na h-oidhirpean aige ann a bhith a’ leasachadh theicneòlasan a chuidicheas le bhith a’ dèanamh WebAssembly na àrd-ùrlar uile-choitcheann airson cur an gnìomh còd tèarainte thar bun-structair, siostam obrachaidh no inneal sam bith. Chaidh coimhearsnachd a chruthachadh airson co-leasachadh ùine ruith agus luchd-cruinneachaidh a leigeas le WebAssembly a chleachdadh chan ann a-mhàin ann am brobhsairean lìn Caidreachas Bytecode.

Gus prògraman so-ghiùlain a chruthachadh air an lìbhrigeadh ann an cruth WebAssembly a ghabhas a chuir gu bàs taobh a-muigh a ’bhrobhsair, tha sinn a’ moladh an API a chleachdadh WASI (WebAssembly System Interface), a bheir seachad eadar-aghaidh bathar-bog airson eadar-obrachadh dìreach leis an t-siostam obrachaidh (POSIX API airson obrachadh le faidhlichean, socaidean, msaa). Is e feart sònraichte den mhodal gnìomhachaidh de thagraidhean a’ cleachdadh WASI gu bheil iad a’ ruith ann an àrainneachd bogsa gainmhich airson a bhith aonaranach bhon phrìomh shiostam agus a’ cleachdadh uidheamachd tèarainteachd stèidhichte air riaghladh comas airson gnìomhan le gach goireas (faidhlichean, clàran, socaidean, fiosan siostam , msaa) feumar na ceadan iomchaidh a thoirt don tagradh (chan eil ach ruigsinneachd don ghnìomhachd ainmichte air a thoirt seachad).

Aon de amasan Tha an caidreachas cruthaichte na fhuasgladh don duilgheadas ann a bhith a’ cuairteachadh thagraidhean modular an latha an-diugh le àireamh mhòr de eisimeileachd. Ann an leithid de thagraidhean, faodaidh a h-uile eisimeileachd a bhith na adhbhar so-leòntachd no ionnsaighean. Le bhith a 'gabhail smachd air eisimeileachd leigidh sin dhut smachd fhaighinn air a h-uile aplacaid co-cheangailte ris. Tha earbsa san tagradh gu fèin-ghluasadach a’ ciallachadh earbsa anns a h-uile eisimeileachd, ach gu tric bidh eisimeileachd air an leasachadh agus air an cumail suas le sgiobaidhean treas-phàrtaidh aig nach urrainnear smachd a chumail air na gnìomhan aca. Tha buill Bytecode Alliance an dùil fuasgladh coileanta a thoirt seachad airson coileanadh tèarainte de thagraidhean WebAssembly nach eil earbsach dha-rìribh.

Airson dìon, thathar a 'moladh bun-bheachd nanoprocesses a chleachdadh, anns a bheil gach modal eisimeileachd air a sgaradh ann am modal WebAssembly fa leth, aig a bheil na cumhachdan air an suidheachadh a thaobh a' mhodail seo a-mhàin (mar eisimpleir, cha bhith leabharlann airson a bhith a 'giollachd sreangan. comasach air socaid lìonraidh no faidhle fhosgladh). Eu-coltach ri dealachadh pròiseas, tha luchd-làimhseachaidh WebAssembly aotrom agus chan fheum iad cha mhòr goireasan a bharrachd - chan eil eadar-obrachadh eadar luchd-làimhseachaidh mòran nas slaodaiche na bhith a 'gairm ghnìomhan àbhaisteach. Faodar sgaradh a dhèanamh chan ann a-mhàin aig ìre mhodalan fa leth, ach cuideachd aig ìre nam buidhnean de mhodalan a dh’ fheumas, mar eisimpleir, obrachadh le raointean cuimhne cumanta

Faodar na cumhachdan a chaidh iarraidh a dhearbhadh an dà chuid aig ìre nan eisimeileachd fhèin, agus an tiomnadh gu eisimeileachd air an t-sreath le modalan pàrant (tha goireasan ann an WASI co-cheangailte ri seòrsa sònraichte de thuairisgeul faidhle - comas). Mar eisimpleir, faodar comas a bhith aig modal faighinn gu eòlaire sònraichte agus fiosan siostam, agus ma tha bun-structar leasachaidh a’ mhodal ann an cunnart no ma thèid so-leòntachd a chomharrachadh, rè ionnsaigh, bidh ruigsinneachd air a chuingealachadh a-mhàin ris na goireasan sin. Faodaidh dearbhaidhean stòrais le luchd-cruthachaidh mhodalan a bhith nan comharra air gnìomhachd amharasach, leithid nuair a dh’ iarras modal giollachd teacsa cead airson ceangal lìonraidh fhosgladh. Bithear a’ sgrùdadh nan ceadan a chaidh a shuidheachadh an toiseach agus ma dh’ atharraicheas iad, thèid an luchdachadh eisimeileachd a dhiùltadh gus an tèid ainm-sgrìobhte a’ mhodal ionadail ùrachadh.

Airson co-leasachadh fo sgiath an Bytecode Alliance eadar-theangaichte grunnan co-cheangailte ri WebAssembly pròiseactan, a chaidh a leasachadh roimhe seo le companaidhean stèidheachaidh a’ chaidreachais:

  • Am fuachd - ùine ruith airson tagraidhean WebAssembly a ruith le leudachaidhean WASI mar thagraidhean àbhaisteach leotha fhèin. Bidh e a’ toirt taic do gach cuid a bhith a’ cur air bhog WebAssembly bytecode a’ cleachdadh goireas loidhne-àithne sònraichte agus a’ ceangal faidhlichean so-ghnìomhaichte deiseil (tha wasmtime air a thoirt a-steach don tagradh mar leabharlann). Tha structar modular sùbailte aig Wasmtime a leigeas leat an ùine ruith airson diofar thagraidhean a sgèileadh, mar eisimpleir, faodaidh tu dreach air a thoirt sìos airson innealan le goireasan cuibhrichte;
  • Lucet - neach-cruinneachaidh agus ùine ruith airson prògraman a chuir an gnìomh ann an cruth WebAssembly. Sònraichte feart Is e Lucet a bhith a’ cleachdadh cruinneachadh làn-dùil (AOT, ro-làimh) an àite JIT a-steach do chòd inneal a tha freagarrach airson a chuir gu bàs gu dìreach. Chaidh am pròiseact a leasachadh le Fastly agus tha e air a bharrrachadh gus glè bheag de ghoireasan ithe agus suidheachaidhean ùra a chuir air bhog gu math luath (Cleachdaidh Lucet gu sgiobalta ann an einnsean coimpiutaireachd iomall sgòthan a bhios a’ cleachdadh WebAssembly airson luchd-làimhseachaidh a chuir air bhog air gach iarrtas). Mar phàirt den cho-phròiseact, thathar an dùil an compiler Lucet a thionndadh gus Wasmtime a chleachdadh mar bhunait;
  • WAM (WebAssembly Micro Runtime) na àm ruith eile airson WebAssembly a chuir an gnìomh, a chaidh a leasachadh an toiseach le Intel airson a chleachdadh ann an innealan Internet of Things. Tha WAMR air a bharrrachadh airson glè bheag de chaitheamh ghoireasan agus faodar a chleachdadh air innealan le beagan RAM. Tha am pròiseact a’ toirt a-steach eadar-theangair agus inneal brìgheil airson a bhith a’ cur an gnìomh bytecode WebAssembly, API (fo-sheata de Libc) agus innealan airson riaghladh thagraidhean fiùghantach;
  • togail crann - gineadair còd a bhios ag eadar-theangachadh riochdachadh eadar-mheadhanach neo-eisimeileach bho ailtireachd bathar-cruaidh gu còd inneal so-ghnìomhaichte air a bharrrachadh airson àrd-ùrlaran bathar-cruaidh sònraichte. Bidh Cranelift a ’toirt taic do cho-thaobhadh de chruinneachadh gnìomh airson gineadh toradh gu math luath, a leigeas leis a chleachdadh gus luchd-cruinneachaidh JIT a chruthachadh (tha JIT stèidhichte air Cranelift air a chleachdadh ann an inneal brìgheil Wasmtime);
  • WASI cumanta - buileachadh air leth de WASI (Eadar-aghaidh Siostam WebAssembly) API airson eadar-obrachadh leis an t-siostam obrachaidh a chuir air dòigh;
  • cargo-wasi - modal airson manaidsear pacaid Cargo a chuireas an gnìomh àithne airson còd Rust a chuir ri chèile ann an còd byte WebAssembly a’ cleachdadh an eadar-aghaidh WASI airson WebAssembly a chleachdadh taobh a-muigh a’ bhrobhsair;
  • и bhasair - parsers airson teacsa a pharsadh (WAT, WAST) agus riochdachaidhean dà-chànanach de chòd byte WebAssembly.

Gus geàrr-chunntas a dhèanamh, tha WebAssembly gu math coltach ri Asm.js, ach eadar-dhealaichte leis gur e cruth binary a th’ ann nach eil ceangailte ri JavaScript agus a leigeas le còd eadar-mheadhanach aig ìre ìosal a chuir ri chèile bho dhiofar chànanan prògramaidh a chuir gu bàs sa bhrobhsair. Chan fheum WebAssembly neach-cruinneachaidh sgudail oir tha e a’ cleachdadh riaghladh cuimhne soilleir. Le bhith a’ cleachdadh JIT airson WebAssembly, faodaidh tu ìrean coileanaidh a choileanadh faisg air còd dùthchasach. Am measg prìomh amasan WebAssembly tha dèanamh cinnteach à so-ghiùlain, giùlan ro-innseach agus coileanadh còd co-ionann air diofar àrd-ùrlaran.

Source: fosgailtenet.ru

Cuir beachd ann