تم إدخال منفذ النواة Linux بالنسبة لـ WebAssembly، الذي يعمل في المتصفح

على قائمة بريد مطوري النواة Linux تم نشر تصحيحات لتنفيذ بنية Wasm لنواة النظام Linuxوهذا يسمح بتجميع النواة إلى رمز وسيط WebAssembly لتنفيذه مباشرةً في متصفح الويب دون استخدام برامج المحاكاة. بالإضافة إلى ذلك، بالنسبة للنواة Linux проектом реализована возможность запускать исполняемые файлы в формате «.wasm» и подготовлен драйвер «web console» для симуляции работы с консолью в браузере. Также подготовлен инструментарий для упрощения сборки запускаемых в браузере системных окружений.

على سبيل المثال، تم إنشاء بيئة باستخدام مجموعة أدوات BusyBox ومكتبة نظام musl المُجمّعة في WebAssembly. يُستخدم Xterm.js كمُحاكي طرفية للعمل مع هذه البيئة. تم إطلاق موقع تجريبي مُنفصل، يُتيح للمستخدمين تقييم المنفذ دون الحاجة إلى تجميعه بأنفسهم. تم الإعلان عن دعم كامل لمتصفحات Chromium ودعم جزئي لمتصفح Firefox، الذي يتميز بقدرات تصحيح أخطاء محدودة. على أجهزة الكمبيوتر الحديثة، يستغرق تحميل بنية نواة Wasm في المتصفح أقل من ثانية.

المشروع قيد التطوير منذ حوالي عامين، ويسمح حاليًا بتحميل النواة في المتصفحات وتنفيذ البرامج القياسية. لم يكتمل العمل بعد، ويواجه المنفذ بعض المشاكل والقيود. على سبيل المثال، لم يُطبّق دعم استدعاءات vfork وlongjmp بعد (تم تصحيح BusyBox للعمل بدونهما)، ولا توجد إمكانية لمقاطعة المهام، ووحدة إدارة الذاكرة (MMU) غير متاحة (حيث تعمل النواة والعمليات في نفس مساحة العنوان)، ومن المستحيل تعديل التعليمات البرمجية المُحمّلة مسبقًا، وتتجمد وحدة التحكم بعد حوالي 5 دقائق بسبب مشاكل في المؤقت. تجدر الإشارة إلى أن القيود الحالية قابلة للتغلب عليها، ولكن بعضها يتطلب تطبيق ملحقات إضافية لـ WebAssembly في المتصفحات. وقد تم اقتراح ملحقات مماثلة لوحدة إدارة الذاكرة (MMU) وتعليق الخيوط.

يتعارض عدم إمكانية إيقاف تنفيذ سلاسل العمليات مؤقتًا في WebAssembly مع مُجدول مهام النواة، ولكن تم تطبيق تعدد المهام من خلال حل بديل بتعيين كل خيط/مهمة إلى وحدة معالجة مركزية افتراضية خاصة به، تُنفذ في عامل ويب منفصل. مكّن هذا النهج من تنفيذ العمليات بالتوازي باستخدام محرك المتصفح ونواة نظام التشغيل المضيف، دون اللجوء إلى تعدد المهام الاستباقي أو تبديل المهام في نواة المتصفح. لا تعمل المقاطعات والإشارات بكامل طاقتها في هذا الإعداد، ويُستخدم معالج مركزي افتراضي منفصل لتوفير مقاطعات المؤقت ومقاطعات IPI (المقاطعة بين المعالجات).

Область применения проекта выходит за рамки простого запуска Linux-окружений в браузерах. Например, порт может применяться для создания многоплатформенных WebAssembly программ, использующих специфичные для Linux системные вызовы. Реализация подобных системных вызовов может быть отдельно преобразована в WebAssembly и прикреплена к приложению, что позволит использовать его без привязки к системному ядру. Порт также будет полезен для организации изолированного выполнения приложений при помощи WASI (WebAssembly System Interface).

تتضمن الخطط تجارب لتطبيق دعم الرسومات في بيئات تعتمد على WebAssembly. ويعتزمون تطبيق EGL ودعم OpenGL ES باستخدام واجهة برمجة تطبيقات WebGL الخاصة بالمتصفح. كما يعتزمون تطبيق دعم صيغة Dwarf debug لتصحيح أخطاء الأكواد سطرًا بسطر.

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster