Mozilla, Fastly, Intel thiab Red Hat txhawb nqa WebAssembly ua lub platform rau kev siv thoob ntiaj teb

Mozilla, Fastly, Intel thiab Red Hat koom siab nws txoj kev siv zog hauv kev tsim cov thev naus laus zis uas pab ua WebAssembly yog lub platform thoob ntiaj teb rau kev ruaj ntseg code ua tiav thoob plaws txhua qhov kev tsim kho vaj tse, kev ua haujlwm, lossis khoom siv. Ib lub zej zog tau tsim los rau kev sib koom ua ke ntawm kev sib koom ua haujlwm ntawm lub sijhawm ua haujlwm thiab cov neeg sau ua ke uas tso cai rau kev siv WebAssembly tsis yog hauv web browsers nkaus xwb Bytecode Alliance.

Txhawm rau tsim cov kev pabcuam portable xa hauv WebAssembly hom uas tuaj yeem ua tiav sab nraud browser, peb xav kom siv API WASI (WebAssembly System Interface), uas muab software cuam tshuam rau kev sib cuam tshuam ncaj qha nrog lub operating system (POSIX API rau kev ua haujlwm nrog cov ntaub ntawv, qhov (socket), thiab lwm yam). Ib qho tshwj xeeb ntawm cov qauv kev ua tiav ntawm cov ntawv thov siv WASI yog tias lawv khiav hauv ib puag ncig sandbox rau kev sib cais los ntawm lub ntsiab system thiab siv cov txheej txheem kev ruaj ntseg raws li kev tswj hwm kev muaj peev xwm rau kev ua nrog txhua qhov peev txheej (cov ntaub ntawv, phau ntawv teev npe, lub qhov (socket), hu xov tooj, thiab lwm yam. .

Ib qho ntawm hom phiaj Cov tsim kev sib koom ua ke yog kev daws teeb meem ntawm kev faib cov kev siv niaj hnub modular nrog ntau qhov kev vam khom. Hauv cov ntawv thov no, txhua qhov kev cia siab tuaj yeem yog qhov muaj peev xwm ntawm qhov tsis zoo lossis kev tawm tsam. Kev tswj hwm ntawm kev vam khom tso cai rau koj kom tau txais kev tswj hwm ntawm txhua daim ntawv thov cuam tshuam nrog nws. Kev ntseeg siab hauv daim ntawv thov cia siab rau txhua qhov kev vam khom, tab sis kev vam khom feem ntau tsim thiab tswj hwm los ntawm pab pawg thib peb uas nws cov dej num tswj tsis tau. Bytecode Alliance cov tswv cuab npaj siab muab cov kev daws teeb meem rau kev ua tiav ntawm WebAssembly cov ntawv thov uas tsis muaj kev ntseeg siab.

Rau kev tiv thaiv, nws tau thov kom siv lub tswv yim ntawm nanoprocesses, nyob rau hauv uas txhua qhov kev vam khom module tau muab cais ua ke cais WebAssembly module, lub hwj chim uas tau teeb tsa nyob rau hauv kev sib raug zoo rau cov module no xwb (piv txwv li, lub tsev qiv ntawv rau kev ua cov hlua yuav tsis muaj peev xwm qhib lub network qhov (socket) lossis cov ntaub ntawv). Tsis zoo li cov txheej txheem sib cais, WebAssembly handlers yog lub teeb yuag thiab yuav luag tsis muaj peev txheej ntxiv - kev sib cuam tshuam ntawm cov neeg tuav haujlwm tsis qeeb dua li hu rau cov haujlwm zoo tib yam. Kev sib cais tuaj yeem ua tsis tau tsuas yog nyob rau theem ntawm tus kheej modules, tab sis kuj nyob rau theem ntawm cov pab pawg ntawm cov modules uas, piv txwv li, yuav tsum tau ua haujlwm nrog cov chaw nco.

Lub zog thov tuaj yeem txiav txim siab ob qho tib si nyob rau theem ntawm kev vam khom rau lawv tus kheej, thiab muab tso rau hauv kev nyob ntawm cov saw hlau los ntawm cov niam txiv modules (peev txheej hauv WASI yog txuam nrog ib hom tshwj xeeb ntawm cov ntaub ntawv piav qhia - muaj peev xwm). Piv txwv li, ib qho module tuaj yeem raug xa mus rau qhov muaj peev xwm nkag mus rau cov npe tshwj xeeb thiab kev hu xov tooj, thiab yog tias lub module kev txhim kho kev tsim kho tau raug cuam tshuam los yog pom muaj qhov tsis zoo, thaum muaj kev tawm tsam, kev nkag yuav tsuas yog txwv rau cov peev txheej no xwb. Kev tshaj tawm cov peev txheej los ntawm cov neeg tsim qauv tuaj yeem yog qhov taw qhia ntawm cov haujlwm tsis txaus ntseeg, xws li thaum cov ntawv sau ua haujlwm thov kev tso cai qhib kev sib txuas hauv network. Thawj qhov kev tso cai raug kuaj xyuas thiab yog tias lawv hloov pauv, qhov kev cia siab ntawm kev thauj khoom raug tsis lees paub kom txog rau thaum lub zos module kos npe hloov tshiab.

Rau kev sib koom ua ke hauv qab tis ntawm Bytecode Alliance txhais ntau yam ntsig txog WebAssembly dej num, yav dhau los cais tsim los ntawm cov koom haum tsim cov tuam txhab:

  • Sijhawm - lub sijhawm ua haujlwm rau kev khiav WebAssembly daim ntawv thov nrog WASI txuas ntxiv raws li cov ntawv thov ib leeg. Nws txhawb nqa ob qho tib si launching WebAssembly bytecode siv ib qho tshwj xeeb hais kom ua kab hluav taws xob thiab txuas cov ntaub ntawv npaj ua tiav (wasmtime yog tsim rau hauv daim ntawv thov ua lub tsev qiv ntawv). Wasmtime muaj cov qauv hloov pauv hloov pauv uas tso cai rau koj los ntsuas lub sijhawm ua haujlwm rau ntau daim ntawv thov, piv txwv li, koj tuaj yeem tsim cov qauv stripped-down rau cov khoom siv nrog cov peev txheej tsawg;
  • Lucet - compiler thiab runtime rau executing cov kev pab cuam nyob rau hauv WebAssembly hom. Qhov txawv feature Lucet yog kev siv tag nrho kev cia siab muab tso ua ke (AOT, ua ntej-ntawm-lub sijhawm) es tsis txhob JIT rau hauv tshuab code haum rau kev ua tiav ncaj qha. Lub phiaj xwm tau tsim los ntawm Fastly thiab tau ua kom zoo kom siv cov peev txheej tsawg thiab nthuav tawm cov xwm txheej tshiab sai heev (Castly siv Lucet nyob rau hauv huab huab ntug xam cav uas siv WebAssembly rau handlers launched rau txhua qhov kev thov). Raws li ib feem ntawm qhov kev sib koom tes, Lucet compiler tau npaj los hloov dua siab tshiab los siv Wasmtime ua lub hauv paus;
  • WAMR (WebAssembly Micro Runtime) yog lwm lub sijhawm ua haujlwm rau kev ua haujlwm WebAssembly, Ameslikas tsim los ntawm Intel rau siv hauv Internet ntawm Yam khoom siv. WAMR tau ua kom zoo rau kev siv tsawg tsawg thiab tuaj yeem siv rau ntawm cov khoom siv nrog me me ntawm RAM. Txoj haujlwm no suav nrog tus neeg txhais lus thiab lub tshuab virtual rau kev ua tiav WebAssembly bytecode, API (ib pawg ntawm Libc) thiab cov cuab yeej rau kev tswj hwm daim ntawv thov dynamic;
  • crane nqa - lub tshuab hluav taws xob code uas txhais cov neeg sawv cev nruab nrab ntawm kev ywj pheej ntawm cov khoom siv kho vajtse rau hauv lub tshuab ua haujlwm tau zoo rau cov cuab yeej kho vajtse tshwj xeeb. Cranelift txhawb nqa parallelization ntawm kev sib sau ua ke rau cov txiaj ntsig ceev heev, uas tso cai rau nws siv los tsim JIT compilers (Cranelift-based JIT yog siv hauv Wasmtime virtual tshuab);
  • WASI common - kev siv cais ntawm WASI (WebAssembly System Interface) API rau kev teeb tsa kev sib cuam tshuam nrog kev ua haujlwm;
  • cargo-uas - ib qho qauv rau Cargo tus thawj tswj hwm uas siv cov lus txib rau kev sau cov lej Rust rau hauv WebAssembly bytecode siv WASI interface rau siv WebAssembly sab nraum browser;
  • wat ΠΈ tus neeg saib xyuas - parsers rau parsing ntawv (WAT, WAST) thiab binary sawv cev ntawm WebAssembly bytecode.

Txhawm rau rov hais dua, WebAssembly zoo li Asm.js, tab sis txawv nyob rau hauv hais tias nws yog ib tug binary hom ntawv uas tsis yog khi rau JavaScript thiab tso cai rau tsawg-qib intermediate code compiled los ntawm ntau yam programming lus yuav tsum tau ua nyob rau hauv lub browser. WebAssembly tsis xav tau cov khoom khib nyiab vim nws siv kev tswj hwm kev nco. Los ntawm kev siv JIT rau WebAssembly, koj tuaj yeem ua tiav qib kev ua tau zoo nyob ze rau cov cai ib txwm muaj. Ntawm cov hom phiaj tseem ceeb ntawm WebAssembly yog xyuas kom muaj kev txav mus los, kev coj tus cwj pwm zoo thiab kev ua tiav cov lej sib txawv ntawm ntau lub platform.

Tau qhov twg los: opennet.ru

Ntxiv ib saib