مطورو مشروع زين حول تنفيذ إمكانية استخدام Xen Hypervisor على لوحات Raspberry Pi 4، تم إعاقة تكييف Xen للعمل على الإصدارات السابقة من لوحات Raspberry Pi بسبب استخدام وحدة تحكم المقاطعة غير القياسية التي لا تحتوي على دعم للمحاكاة الافتراضية. استخدم Raspberry Pi 4 وحدة تحكم المقاطعة العادية GIC-400 المدعومة في Xen، وتوقع المطورون عدم وجود مشاكل في تشغيل Xen. ولكن في الواقع، تبين أن كل شيء لم يكن كما هو متوقع، ومن أجل ضمان عمل Xen على Raspberry Pi 4، كان لا بد من إجراء تغييرات ملحوظة على رمز الذاكرة.
كانت الإصدارات الأولى من لوحات Raspberry Pi 4 محدودة الوصول إلى مساحة العنوان للجيجابايت الأولى من الذاكرة فقط، وهو ما لم يكن كافيًا لـ Dom0. تم إجراء التغييرات اللازمة في إصدار Xen 4.14، ولكن ظهرت مشكلة أخرى على الفور - استخدم نظام Xen الفرعي استدعاء Virt_to_phys لتحويل العناوين الافتراضية إلى عناوين فعلية، والتي لم تنجح مع جميع العناوين الافتراضية وفشلت محاولات تحويل بعض العناوين الافتراضية. لحل هذه المشكلة، كان علينا إضافة وظيفة أخرى لترجمة العناوين.
لم تنته المشاكل عند هذا الحد، وظهرت خصوصية في تشغيل DMA - في جميع الأنظمة الأساسية المدعومة سابقًا في Xen (x86 وARM وARM64)، كانت عناوين DMA والعناوين الفعلية متزامنة دائمًا، لكنها كانت مختلفة في Raspberry Pi 4. تبين أن العثور على حل لهذه المشكلة هو الأصعب ويتطلب تطوير تصحيحات لنواة Linux التي تقوم بالتحويل بين العناوين الفعلية وعناوين DMA.
تم تضمين الإصلاحات المعدة في Linux kernel 5.9 والآن تم التعرف على Xen على أنه جاهز لتنظيم المحاكاة الافتراضية على لوحات Raspberry Pi 4، بما في ذلك Raspberry Pi 4 الذي يمكنك استخدامه الآن (Edge Virtualization Engine)، وهو محرك لإنشاء وتشغيل التطبيقات السحابية الأصلية باستخدام Xen، и لبناء البنية التحتية الافتراضية على الأجهزة المحمولة.
وبالإضافة إلى ذلك، يمكننا أن نلاحظ الإزالة في كسين. نقاط الضعف ,
и
من المحتمل أن تسمح لنظام الضيف بالحصول على امتيازات البيئة المضيفة. مشاكل
, ,
,
,
,
и
يقتصر على ارتكاب الحرمان من الخدمة.
المصدر: opennet.ru
