Mozilla, Fastly, Intel da Red Hat suna haɓaka WebAssembly azaman dandamali don amfanin duniya

Mozilla, Fastly, Intel da Red Hat tarayya Ƙoƙarinsa na haɓaka fasahohi waɗanda ke taimakawa sanya WebAssembly dandamali na duniya don amintaccen aiwatar da code a duk wani kayan more rayuwa, tsarin aiki, ko na'ura. An kafa wata al'umma don haɗin gwiwar haɓaka lokacin aiki da masu tarawa waɗanda ke ba da izinin amfani da WebAssembly ba kawai a cikin masu binciken gidan yanar gizo ba. Bytecode Alliance.

Don ƙirƙirar šaukuwa shirye-shirye da aka kawo a cikin WebAssembly tsarin da za a iya kashe a wajen mai lilo, muna ba da shawarar yin amfani da API WASI (WebAssembly System Interface), wanda ke ba da hanyoyin haɗin software don hulɗar kai tsaye tare da tsarin aiki (POSIX API don aiki tare da fayiloli, sockets, da dai sauransu). Wani fasali na musamman na tsarin aiwatar da aikace-aikacen ta amfani da WASI shine cewa suna gudana a cikin yanayin sandbox don keɓancewa daga babban tsarin kuma suna amfani da tsarin tsaro dangane da ikon sarrafa ayyuka tare da kowane albarkatun (fayil, kundayen adireshi, soket, kiran tsarin. , da sauransu) dole ne a ba da aikace-aikacen izini da suka dace (an bayar da dama ga ayyukan da aka bayyana kawai).

Daya daga raga Ƙungiyoyin da aka ƙirƙira shine mafita ga matsalar rarraba aikace-aikace na zamani tare da adadi mai yawa na dogara. A cikin irin waɗannan aikace-aikacen, kowane abin dogaro na iya zama tushen lahani ko hari. Gudanar da abin dogaro yana ba ku damar sarrafa duk aikace-aikacen da ke da alaƙa da shi. Amincewa da aikace-aikacen ta atomatik yana nuna amana ga duk abin dogaro, amma ƙungiyoyi na ɓangare na uku galibi ana haɓaka su kuma ana kiyaye abubuwan dogaro waɗanda ba za a iya sarrafa su ba. Membobin Bytecode Alliance sunyi niyyar samar da cikakkiyar mafita don amintaccen aiwatar da aikace-aikacen WebAssembly waɗanda basu da amana a zahiri.

Don kariya, an ba da shawarar yin amfani da tsarin nanoprocesses, wanda kowane tsarin dogaro ya keɓance a cikin keɓantaccen tsarin WebAssembly, ikon wanda aka saita dangane da wannan module kawai (alal misali, ɗakin karatu don sarrafa kirtani ba zai yiwu ba. iya buɗe soket ko fayil). Ba kamar rabuwar tsari ba, masu sarrafa WebAssembly suna da nauyi kuma suna buƙatar kusan ba su buƙatar ƙarin albarkatu - hulɗa tsakanin masu sarrafa ba ta da hankali fiye da kiran ayyuka na yau da kullun. Za'a iya yin rabuwa ba kawai a matakin ɗakunan mutum ba, amma kuma a matakin gungun kayayyaki waɗanda, misali, suna buƙatar aiki tare da wuraren ƙwaƙwalwar ƙwaƙwalwa na yau da kullun

Ana iya ƙayyade ikon da ake buƙata duka a matakin abin dogaro da kansu, kuma a ba da su ga masu dogaro da sarkar ta hanyar tsarin iyaye (albarkatun da ke cikin WASI suna da alaƙa da nau'in bayanin fayil na musamman - iyawa). Alal misali, za a iya ba da izini na musamman don samun damar yin amfani da takamaiman kundin adireshi da kiran tsarin, kuma idan an lalata kayan aikin ci gaba na tsarin ko kuma an gano wani rauni, a lokacin harin, damar za a iyakance ga waɗannan albarkatun kawai. Bayanin albarkatu ta masu ƙirƙira na'ura na iya zama alamar ayyukan da ake tuhuma, kamar lokacin da tsarin sarrafa rubutu ya nemi izini don buɗe hanyar sadarwa. Ana duba izini na farko da aka saita kuma idan sun canza, ana ƙi yin lodin abin dogaro har sai an sabunta sa hannun ƙirar gida.

Don haɓaka haɗin gwiwa a ƙarƙashin reshe na Bytecode Alliance fassara da yawa masu alaƙa da WebAssembly ayyuka, a baya daban daban da kamfanonin kafa ƙungiyar suka haɓaka:

  • Lokaci - Lokacin gudu don gudanar da aikace-aikacen WebAssembly tare da kari na WASI azaman aikace-aikacen tsayayye na yau da kullun. Yana goyan bayan duka ƙaddamar da WebAssembly bytecode ta amfani da kayan aikin layin umarni na musamman da haɗa fayilolin aiwatar da shirye-shiryen (an gina lokacin wasm a cikin aikace-aikacen azaman ɗakin karatu). Wasmtime yana da tsari mai sassauƙa mai sassauƙa wanda ke ba ku damar haɓaka lokacin aiki don aikace-aikace daban-daban, alal misali, zaku iya ƙirƙirar sigar tsiri don na'urori masu iyakacin albarkatu;
  • Lucet - mai tarawa da lokacin aiki don aiwatar da shirye-shirye a tsarin WebAssembly. Na bambanta fasali Lucet shine yin amfani da cikakken haɗin kai (AOT, gaba-da-lokaci) maimakon JIT cikin lambar injin da ta dace da aiwatar da kai tsaye. Fastly ne ya haɓaka aikin kuma an inganta shi don cinye ƙananan albarkatu da ƙaddamar da sabbin lokuta da sauri (Yi sauri yana amfani da Lucet a cikin injin kwamfyutar gajimare wanda ke amfani da WebAssembly don masu aiwatarwa da aka ƙaddamar akan kowace buƙata). A matsayin wani ɓangare na aikin haɗin gwiwa, ana shirin canza mai tarawa na Lucet don amfani da Wasmtime a matsayin tushe;
  • WAMR (WebAssembly Micro Runtime) wani lokacin aiki ne don aiwatar da WebAssembly, asalin Intel ne ya haɓaka don amfani da na'urorin Intanet na Abubuwa. An inganta WAMR don ƙarancin amfani da albarkatu kuma ana iya amfani dashi akan na'urori masu ƙaramin adadin RAM. Aikin ya haɗa da mai fassara da na'ura mai mahimmanci don aiwatar da WebAssembly bytecode, API (wani ɓangaren Libc) da kayan aiki don sarrafa aikace-aikace mai ƙarfi;
  • Kwancen kwanuka - janareta na lamba wanda ke fassara matsakaicin wakilci mai zaman kansa na gine-ginen kayan masarufi zuwa lambar injin aiwatarwa wanda aka inganta don takamaiman dandamali na kayan masarufi. Cranelift yana goyan bayan daidaitawa na tarin ayyuka don samar da sakamako mai sauri, wanda ke ba da damar yin amfani da shi don ƙirƙirar masu tarawa JIT (Ana amfani da JIT na tushen Cranelift a cikin na'ura mai kama da Wasmtime);
  • WASI na kowa - aiwatarwa daban na WASI (WebAssembly System Interface) API don tsara hulɗa tare da tsarin aiki;
  • kaya-wasi - wani tsari na mai sarrafa fakitin Cargo wanda ke aiwatar da umarni don tattara lambar Rust a cikin WebAssembly bytecode ta amfani da ƙirar WASI don amfani da WebAssembly a wajen mai bincike;
  • wat и wasparser - parsers don tantance rubutu (WAT, WAST) da wakilcin binary na WebAssembly bytecode.

Don sake ɗauka, WebAssembly yana da yawa kamar Asm.js, amma daban a cikin cewa tsari ne na binary wanda ba a haɗa shi da JavaScript ba kuma yana ba da damar ƙaramin matsakaiciyar lambar da aka haɗa daga harsunan shirye-shirye daban-daban don aiwatar da su a cikin burauzar. WebAssembly baya buƙatar mai tara shara saboda yana amfani da sarrafa ƙwaƙwalwar ajiya bayyane. Ta amfani da JIT don Gidan Yanar Gizo, zaku iya cimma matakan aiki kusa da lambar asali. Daga cikin manyan manufofin WebAssembly shine tabbatar da ɗaukar hoto, halayya da ake iya faɗi da kuma aiwatar da code iri ɗaya akan dandamali daban-daban.

source: budenet.ru

Add a comment