ΠŸΡŠΡ€Π²ΠΈ выпуск Π½Π° wasm3, Π±ΡŠΡ€Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° WebAssembly

Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΏΡŠΡ€Π²ΠΈ выпуск wasm3, ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ WebAssembly, основно ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° изпълнСниС Π½Π° WebAssembly прилоТСния Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ няма JIT рСализация Π·Π° WebAssembly, Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с JIT ΠΈΠ»ΠΈ Π½Π΅ Π΅ възмоТно ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° изпълними страници Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° JIT. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° C ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· MIT.

Wasm3 ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° тСстовС Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ със спСцификацията WebAssembly 1.0 ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° изпълнСниС Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ WASI прилоТСния, прСдоставяйки производитСлност само 4-5 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎΠ΄ JIT Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ (liftoff, cranelift) ΠΈ 11.5 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎΠ΄ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄. ΠŸΡ€ΠΈ сравнСниС с Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° WebAssembly (wac, life, wasm-micro-runtime), wasm3 сС ΠΎΠΊΠ°Π·Π° 15.8 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·.

Π—Π° Ρ€Π°Π±ΠΎΡ‚Π° с wasm3 са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ 64Kb ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° ΠΊΠΎΠ΄ ΠΈ 10Kb RAM, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π° изпълнСниС Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ Π² WebAssembly прилоТСния Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ, ΠΊΠ°Ρ‚ΠΎ Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) ΠΈ ATmega1284, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½Π° ΠΏΠ»Π°Ρ‚ΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ x86, x64, ARM, MIPS, RISC-V ΠΈ Xtensa. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Linux (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° основата Π½Π° OpenWRT), Windows, macOS, Android ΠΈ iOS. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ възмоТна компилация Π½Π° wasm3 Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ WebAssembly Π·Π° изпълнСниС Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° ΠΈΠ»ΠΈ Π·Π° Π²Π³Π½Π΅Π·Π΄Π΅Π½ΠΎ стартиранС (self-hosting).

Високата производитСлност сС постига Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π° Massey Meta Machine (M3), ΠΏΡ€ΠΈ която Π·Π° намаляванС Π½Π° Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° транслация Π½Π° Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° Π² ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‰ΠΈ псСвдо-машинСн ΠΊΠΎΠ΄, Π° ΠΌΠΎΠ΄Π΅Π»ΡŠΡ‚ Π½Π° изпълнСниС Π½Π° стСковата Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° Π² ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ рСгистров ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π² M3 прСдставляват C Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ са рСгистритС Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΡ‚Ρ€Π°Π·Π΅Π½ΠΈ Π² рСгистритС Π½Π° CPU. ЧСсто срСщанитС послСдоватСлности ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° оптимизация сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π² сводни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС отбСлязано Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ разпространСния
WebAssembly Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Анализирайки 948 хиляди ΠΎΡ‚ Π½Π°ΠΉ-популярнитС сайтовС спорСд Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° Π½Π° Alexa, изслСдоватСлитС установиха, Ρ‡Π΅ WebAssembly сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° 1639 сайта (0.17%), Ρ‚.Π΅. Π½Π° 1 ΠΎΡ‚ всСки 600 сайта. ΠžΠ±Ρ‰ΠΎ Π½Π° сайтовСтС Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° 1950 ΠΌΠΎΠ΄ΡƒΠ»Π° WebAssembly, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ 150 ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ. ΠŸΡ€ΠΈ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° WebAssembly бяха Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Π½Π΅ΠΌΠ°Π»ΠΊΠΎ ΠΎΠ±Π΅Π·ΠΊΡƒΡ€Π°ΠΆΠ°Π²Π°Ρ‰ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ β€” Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 50% ΠΎΡ‚ случаитС WebAssembly Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Ρ†Π΅Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π΄ΠΎΠ±ΠΈΠ² Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡƒΡ‚ΠΈ (55.7%) ΠΈ Π·Π° скриванС Π½Π° ΠΊΠΎΠ΄ Π½Π° врСдоносни скриптовС (0.2%). ΠžΡ‚ Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½ΠΈΡ‚Π΅ прилоТСния Π½Π° WebAssembly бяха отбСлязани ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (38.8%), ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠ³Ρ€ΠΈ (3.5%) ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° собствСн ΠΊΠΎΠ΄, написан Π½Π΅ Π½Π° JavaScript (0.9%). Π’ 14.9% ΠΎΡ‚ случаитС WebAssembly Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΎΠΊΠΎΠ»Π½Π°Ρ‚Π° срСда Π·Π° идСнтификация Π½Π° потрСбитСля (fingerprinting).

ΠŸΡŠΡ€Π²ΠΈ выпуск Π½Π° wasm3, Π±ΡŠΡ€Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° WebAssembly

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster