wasm3 ، مترجم WebAssembly الذي يصدر نسخته الأولى

W3

في الآونة الأخيرة، تم إصدار النسخة الأولى من wasm3، الذي مفسر سريع جدا من الكود الوسيط بواسطة WebAssemblyنظرًا لأنه مصمم بشكل أساسي لتشغيل تطبيقات WebAssembly على وحدات التحكم الدقيقة والأنظمة الأساسية التي لا يوجد لها تنفيذ JIT لـ WebAssembly ، لا توجد ذاكرة كافية لتشغيل JIT أو إنشاء صفحات ذاكرة قابلة للتنفيذ مطلوبة لتنفيذ JIT.

بالنسبة لأولئك الذين ليسوا على دراية بـ WebAssembly ، يجب أن تعلموا أن هذا هو لغة منخفضة المستوى ، تم تصميمه في البداية كتنسيق مستهدف عند التجميع من C و C ++ ، على الرغم من أنه يدعم أيضًا التعليمات البرمجية المصدر للغات أخرى ، مثل Rust and Go. يُستخدم تنسيق الشفرة الثنائية المحمول هذا للتنفيذ الكامل للنصوص من مستعرض جانب العميل.

حول wasm3

يجتاز Wasm3 اختبارات التوافق مع مواصفات WebAssembly 1.0 و يمكن استخدامها لتشغيل العديد من تطبيقات WASI ، يقدم أداء أقل 4-5 مرات من محركات JIT و 11.5 مرة أقل من تنفيذ التعليمات البرمجية الأصلية.

مقارنة بفناني الأداء الآخرين من WebAssembly (wac ، life ، wasm-micro-runtime) ، كان wasm3 أسرع بـ 15.8 مرة.

بدأ Wasm3 كمشروع بحثي ولا يزال كذلك بوسائل عديدة. تقييم المحرك في بيئات مختلفة جزء من التحقيق. نظرًا لأن لدينا Lua و JS و Python و Lisp (...) يعمل على MCU ، فإن WebAssembly هو في الواقع بديل واعد. يوفر بيئة معزولة تمامًا ومحددة جيدًا ويمكن التنبؤ بها. من بين حالات الاستخدام العملية ، يمكننا سرد الحوسبة المتطورة ، والبرمجة النصية ، وتنفيذ قواعد إنترنت الأشياء ، وعقود blockchain ، إلخ

wasm3 يتطلب ذاكرة 64 كيلو بايت للرمز و 10 كيلو بايت من ذاكرة الوصول العشوائي ، ماذا انت يسمح باستخدام المشروع لتشغيل التطبيقات المترجمة في WebAssembly في ميكروكنترولر مثل Arduino MKR *، Arduino Due، Particle Photon، ESP8266، ESP32، Air602 (W600)، nRF52، nRF51 Blue Pill (STM32F103C8T6)، MXChip AZ3166 (EMW3166)، Maix (K210)، HiFive1 (E310) (ICE40ga5) و وكذلك على اللوحات وأجهزة الكمبيوتر القائمة على البنى x86 و x64 و ARM و MIPS و RISC-V و Xtens.

يتم تحقيق الأداء العالي باستخدام تقنية Massey Meta Machine (M3) في المترجم ، وفيه ، لتقليل النفقات العامة لفك الشفرة الثانوية، الرمز الثانوي تمت ترجمته بشكل استباقي في العمليات الأكثر كفاءة التي تولد رمز آلة زائفة ويصبح نموذج التنفيذ للجهاز الظاهري المكدس أكثر كفاءة في عمليات التركيز المسجلة في M3 هي وظائف C ، والتي تكون وسيطاتها هي سجلات الجهاز الظاهري ، والتي يمكن أن تنعكس في سجلات وحدة المعالجة المركزية.

تتحول تدفقات العمل المتكررة من أجل التحسين إلى عمليات موجزة.

وبالإضافة إلى ذلك، يمكن ملاحظة نتائج الدراسة في WebAssembly على الويب ، بعد تحليل 948 ألف موقع من أشهر المواقع التي صنفتها Alexa ، وجد الباحثون أن يستخدم WebAssembly في 1639 موقعًا (0.17٪) ، أي 1 من 600 موقع.

في المجموع ، كشفت مواقع الويب عن حمولة 1950 وحدة WebAssembly ، منها 150 وحدة فريدة.

عند النظر في نطاق WebAssembly ، تم التوصل إلى استنتاجات مخيبة للآمال: في أكثر من 50٪ من الحالات ، تم استخدام WebAssembly لأغراض ضارة ، على سبيل المثال ، لتعدين العملات المشفرة (55,7٪) وإخفاء التعليمات البرمجية من البرامج النصية الضارة (0,2) XNUMX٪).

من أنظمة التشغيل المدعومة لـ Wasm3 ، يمكننا أن نجد لينكس بما في ذلك أجهزة التوجيه القائمة على OpenWRT ، Windows و macOS و Android و iOS. كان من الممكن أيضًا تجميع wasm3 في كود WebAssembly الوسيط لتشغيل المترجم في متصفح أو للاستضافة الذاتية.

من بين الاستخدامات المشروعة لـ WebAssembly ، تمت ملاحظة تنفيذ المكتبة (38.8٪) ، وإنشاء الألعاب (3.5٪) ، وتنفيذ التعليمات البرمجية الأصلية بخلاف JavaScript (0.9٪). في 14,9٪ من الحالات ، تم استخدام WebAssembly لتحليل البيئة لتحديد هوية المستخدم (بصمات الأصابع).

جرب wasm3

بالنسبة لأولئك الذين يرغبون في أن يكونوا قادرين على استخدام هذا المترجم في نظامهم ، يمكنهم الرجوع إلى الوثائق وكذلك رمز المشروع وهي مكتوبة بلغة C وموزعة بموجب ترخيص MIT ، في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.