Wasmer 2.0, WebAssembly ላይ የተመሰረቱ አፕሊኬሽኖችን ለመገንባት የሚያስችል መሳሪያ አለ።

የ Wasmer ፕሮጀክት በተለያዩ ኦፕሬቲንግ ሲስተሞች ላይ ሊሰሩ የሚችሉ ሁለንተናዊ አፕሊኬሽኖችን ለመፍጠር የሚያገለግሉ የWebAssembly ሞጁሎችን ለማስፈጸሚያ Runtime በማዘጋጀት ሁለተኛውን ዋና ልቀት ለቋል። የፕሮጀክት ኮድ በሩስት ውስጥ የተፃፈ እና በ MIT ፈቃድ ስር ይሰራጫል።

ተንቀሳቃሽነት የሚገኘው የመተግበሪያ ኮድ ወደ ዝቅተኛ ደረጃ WebAssembly መካከለኛ ኮድ በማዘጋጀት ነው፣ ይህም በማንኛውም OS ላይ ሊሰራ ወይም በሌሎች የፕሮግራም አወጣጥ ቋንቋዎች ውስጥ ባሉ ፕሮግራሞች ውስጥ ሊካተት ይችላል። ፕሮግራሞቹ WebAssembly pseudocode የሚያሄዱ ቀላል ክብደት ያላቸው መያዣዎች ናቸው። እነዚህ ኮንቴይነሮች ከኦፕሬቲንግ ሲስተም ጋር የተሳሰሩ አይደሉም እና በማንኛውም የፕሮግራም አወጣጥ ቋንቋ የተጻፈውን ኮድ ሊያካትቱ ይችላሉ። የEmscripten Toolkit ወደ WebAssembly ለማጠናቀር ሊያገለግል ይችላል። WebAssemblyን ወደ የአሁኑ የመሳሪያ ስርዓት የማሽን ኮድ ለመተርጎም ፣የተለያዩ የተጠናቀሩ የኋላ ክፍሎችን (Singlepass ፣ Cranelift ፣ LLVM) እና ሞተሮችን (ጂት ወይም የማሽን ኮድ ማመንጨትን በመጠቀም) ግንኙነትን ይደግፋል።

የመዳረሻ ቁጥጥር እና ከስርአቱ ጋር መስተጋብር የሚቀርበው በ WASI (WebAssembly System Interface) API በመጠቀም ነው፣ ይህም ከፋይሎች፣ ሶኬቶች እና ሌሎች በስርዓተ ክወናው ከሚሰጡ ተግባራት ጋር ለመስራት የፕሮግራም አወጣጥ በይነገጽ ያቀርባል። አፕሊኬሽኖች በማጠሪያ አከባቢ ውስጥ ከዋናው ስርዓት ተለይተዋል እና የታወጀውን ተግባር ብቻ ማግኘት ይችላሉ (በችሎታ አስተዳደር ላይ የተመሠረተ የደህንነት ዘዴ - ለእያንዳንዱ ሀብቶች (ፋይሎች ፣ ማውጫዎች ፣ ሶኬቶች ፣ የስርዓት ጥሪዎች ፣ ወዘተ) ጋር ለሚደረጉ እርምጃዎች) ፣ ማመልከቻው ተገቢውን ስልጣን መሰጠት አለበት).

የWebAssembly ኮንቴይነርን ለመክፈት፣ ያለ ውጫዊ ጥገኝነት የሚመጣውን በ runtime ሲስተም ("curl https://get.wasmer.io -sSfL | sh") ላይ ብቻ Wasmerን ይጫኑ እና አስፈላጊውን ፋይል ያሂዱ ("wasmer test.wasm" ). ፕሮግራሞች የሚከፋፈሉት በመደበኛ WebAssembly ሞጁሎች ነው፣ ይህም የ WAPM ጥቅል አስተዳዳሪን በመጠቀም ሊተዳደር ይችላል። Wasmer እንደ ቤተ-መጽሐፍት ሆኖ ይገኛል WebAssembly ኮድ ወደ Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir እና Java ፕሮግራሞች.

የመሳሪያ ስርዓቱ ከአገሬው ተወላጅ ስብሰባዎች አቅራቢያ የመተግበሪያ አፈፃፀም አፈፃፀምን እንዲያሳኩ ይፈቅድልዎታል። Native Object Engine ለ WebAssembly ሞጁል በመጠቀም የማሽን ኮድ ማመንጨት ይችላሉ ("wasmer compile -native" ቀድሞ የተጠናቀሩ .so፣ .dylib እና .dll የነገር ፋይሎችን ለማመንጨት) ይህም ለማሄድ አነስተኛ ጊዜ የሚጠይቅ ነገር ግን ሁሉንም የአሸዋ ሳጥን ማግለል ይይዛል። ዋና መለያ ጸባያት. አብሮ በተሰራው ዋስመር ቀድሞ የተጠናቀሩ ፕሮግራሞችን ማቅረብ ይቻላል። የ Rust API እና Wasm-C-API ተጨማሪዎችን እና ቅጥያዎችን ለመፍጠር ቀርቧል።

በ Wasmer የስሪት ቁጥር ላይ ከፍተኛ ለውጥ ከውስጣዊው ኤፒአይ ጋር ተኳሃኝ ያልሆኑ ለውጦችን ከማስተዋወቅ ጋር የተያያዘ ነው፣ ይህም እንደ ገንቢዎቹ 99% የመሣሪያ ስርዓት ተጠቃሚዎችን አይነካም። ተኳኋኝነትን ከሚጥሱ ለውጦች መካከል፣ ተከታታይ የ Wasm ሞጁሎች ቅርጸትም ለውጥ አለ (በ Wasmer 1.0 ተከታታይነት ያላቸው ሞጁሎች በ Wasmer 2.0 ውስጥ ጥቅም ላይ መዋል አይችሉም)። ሌሎች ለውጦች፡-

  • የውሂብ ስራዎችን ትይዩ ለማድረግ ለሲምዲ (ነጠላ መመሪያ ፣ ባለብዙ መረጃ) መመሪያዎች ድጋፍ። የሲምዲ አጠቃቀም አፈፃፀሙን በእጅጉ የሚያሻሽልባቸው ቦታዎች የማሽን መማር፣ የቪዲዮ ኢንኮዲንግ እና ዲኮዲንግ፣ የምስል ሂደት፣ የአካላዊ ሂደት ማስመሰል እና የግራፊክስ ማጭበርበርን ያካትታሉ።
  • ለማጣቀሻ ዓይነቶች ድጋፍ, የ Wasm ሞጁሎች በሌሎች ሞጁሎች ውስጥ ወይም በታችኛው አካባቢ ውስጥ መረጃን እንዲያገኙ ያስችላቸዋል.
  • ጉልህ የአፈጻጸም ማሻሻያዎች ተደርገዋል። ከተንሳፋፊ ነጥብ ቁጥሮች ጋር የኤልኤልቪኤም ሩጫ ጊዜ ፍጥነት በግምት 50 በመቶ ጨምሯል። የከርነል መዳረሻ የሚጠይቁ ሁኔታዎችን በመቀነስ የተግባር ጥሪዎች በከፍተኛ ሁኔታ ተፋጥነዋል። የክራንሊፍት ኮድ ጀነሬተር አፈጻጸም በ40 በመቶ ጨምሯል። የተቀነሰ የውሂብ መለያየት ጊዜ።
    Wasmer 2.0, WebAssembly ላይ የተመሰረቱ አፕሊኬሽኖችን ለመገንባት የሚያስችል መሳሪያ አለ።
    Wasmer 2.0, WebAssembly ላይ የተመሰረቱ አፕሊኬሽኖችን ለመገንባት የሚያስችል መሳሪያ አለ።
  • ምንነቱን የበለጠ በትክክል ለማንፀባረቅ፣የሞተሮች ስሞች ተቀይረዋል፡ጂአይቲ → ዩኒቨርሳል፣ተወላጅ →ዳይሊብ (ተለዋዋጭ ቤተ መፃህፍት)፣ የነገር ፋይል → ስታቲክሊብ (ስታቲክ ሊብ)።

ምንጭ: opennet.ru

አስተያየት ያክሉ