Tha Wasmer 2.0, inneal airson tagraidhean stèidhichte air WebAssembly a thogail, ri fhaighinn

Tha am pròiseact Wasmer air an dàrna prìomh fhoillseachadh aca a leigeil ma sgaoil, a’ leasachadh ùine ruith airson modalan WebAssembly a chuir an gnìomh a ghabhas cleachdadh gus tagraidhean uile-choitcheann a chruthachadh a dh’ fhaodas ruith air diofar shiostaman obrachaidh, a bharrachd air còd neo-earbsach a ruith leotha fhèin. Tha còd a’ phròiseict air a sgrìobhadh ann an Rust agus air a chuairteachadh fo chead MIT.

Tha comas giùlain air a choileanadh le bhith a’ cur ri chèile còd tagraidh ann an còd eadar-mheadhanach WebAssembly aig ìre ìosal, a dh’ fhaodas ruith air OS sam bith no a bhith freumhaichte ann am prògraman ann an cànanan prògramaidh eile. Tha na prògraman nan soithichean aotrom a bhios a’ ruith pseudocode WebAssembly. Chan eil na soithichean sin ceangailte ris an t-siostam obrachaidh agus faodaidh iad còd a chaidh a sgrìobhadh an toiseach ann an cànan prògramadh sam bith a ghabhail a-steach. Faodar an inneal Emscripten a chleachdadh airson a chur ri chèile gu WebAssembly. Gus WebAssembly a thionndadh gu còd inneal an àrd-ùrlar gnàthach, bidh e a ’toirt taic do cheangal diofar backends cruinneachaidh (Singlepass, Cranelift, LLVM) agus einnseanan (a’ cleachdadh JIT no gineadh còd inneal).

Tha smachd ruigsinneachd agus eadar-obrachadh leis an t-siostam air a thoirt seachad a’ cleachdadh an WASI (WebAssembly System Interface) API, a bheir seachad eadar-aghaidh prògramaidh airson a bhith ag obair le faidhlichean, socaidean agus gnìomhan eile a bheir an siostam obrachaidh seachad. Tha tagraidhean air an dealachadh bhon phrìomh shiostam ann an àrainneachd bogsa gainmhich agus chan eil cothrom aca ach air a’ ghnìomhachd ainmichte (inneal tèarainteachd stèidhichte air riaghladh comais - airson gnìomhan le gach goireas (faidhlichean, clàran, socaidean, fiosan siostaim, msaa). feumar na cumhachdan iomchaidh a thoirt don tagradh).

Gus inneal WebAssembly a chuir air bhog, dìreach stàlaich Wasmer anns an t-siostam runtime, a thig às aonais eisimeileachd bhon taobh a-muigh (“curl https://get.wasmer.io -sSfL | sh”), agus ruith am faidhle riatanach (“wasmer test.wasm” ). Tha prògraman air an cuairteachadh ann an cruth mhodalan cunbhalach WebAssembly, a dh’ fhaodar a riaghladh le bhith a’ cleachdadh manaidsear pacaid WAPM. Tha Wasmer cuideachd ri fhaighinn mar leabharlann a dh'fhaodar a chleachdadh gus còd WebAssembly a fhighe a-steach do phrògraman Rust, C / C ++, C #, D, Python, JavaScript, Go, PHP, Ruby, Elixir, agus Java.

Leigidh an àrd-ùrlar leat coileanadh cur an gnìomh tagraidh a choileanadh faisg air co-chruinneachaidhean dùthchasach. Le bhith a’ cleachdadh an Einnsean Native Object airson modal WebAssembly, faodaidh tu còd inneil a ghineadh (“wasmer compile -native” gus faidhlichean nì ro-chruinnichte .so, .dylib agus .dll a ghineadh), a dh’ fheumas glè bheag de ùine ruith airson ruith, ach a chumas aonaranachd a’ bhogsa gainmhich gu lèir feartan. Tha e comasach prògraman ro-ullaichte a thoirt seachad le Wasmer togte. Tha an Rust API agus Wasm-C-API air an tabhann airson tuilleadan agus leudachadh a chruthachadh.

Tha atharrachadh mòr anns an àireamh dreach de Wasmer co-cheangailte ri toirt a-steach atharrachaidhean neo-fhreagarrach don API a-staigh, nach toir, a rèir an luchd-leasachaidh, buaidh air 99% de luchd-cleachdaidh an àrd-ùrlair. Am measg nan atharrachaidhean a tha a’ briseadh co-chòrdalachd, tha atharrachadh ann cuideachd ann an cruth mhodalan Wasm sreathach (cha bhith e comasach modalan sreathaichte ann an Wasmer 1.0 a chleachdadh ann an Wasmer 2.0). Atharraichean eile:

  • Taic airson stiùireadh SIMD (Stiùireadh Singilte, Ioma Dàta), a’ ceadachadh obrachadh dàta co-shìnte. Am measg nan raointean anns am faod cleachdadh SIMD coileanadh a leasachadh gu mòr tha ionnsachadh innealan, còdachadh bhidio agus còdachadh, giullachd ìomhaighean, atharrais pròiseas corporra, agus làimhseachadh grafaigean.
  • Taic airson seòrsachan iomraidh, a’ leigeil le modalan Wasm fiosrachadh fhaighinn ann am modalan eile no san àrainneachd bhunasach.
  • Chaidh optimizations coileanaidh cudromach a dhèanamh. Tha astar ùine ruith LLVM le àireamhan puing fleòdraidh air àrdachadh timcheall air 50%. Chaidh gairmean gnìomh a luathachadh gu mòr le bhith a’ lughdachadh shuidheachaidhean a dh’ fheumas ruigsinneachd air an kernel. Tha coileanadh gineadair còd Cranelift air àrdachadh 40%. Lùghdachadh air an ùine deserialization dàta.
    Tha Wasmer 2.0, inneal airson tagraidhean stèidhichte air WebAssembly a thogail, ri fhaighinn
    Tha Wasmer 2.0, inneal airson tagraidhean stèidhichte air WebAssembly a thogail, ri fhaighinn
  • Gus brìgh na h-einnseanan a nochdadh nas mionaidiche, chaidh ainmean nan einnseanan atharrachadh: JIT → Uile-choitcheann, Dùthchasach → Dylib (Leabharlann Dynamic), Faidhle Rud → StaticLib (Leabharlann Statach).

Source: fosgailtenet.ru

Cuir beachd ann