Jailhouse هو برنامج Hypervisor للتقسيم يعتمد على Linux (تم تطويره كمشروع برنامج GPLv2 مجاني). يكون قادر على تشغيل تطبيقات أو أنظمة تشغيل كاملة (مقتبس) بالإضافة إلى Linux. لهذا الغرض ، جonfigure وحدة المعالجة المركزية وخصائص المحاكاة الافتراضية للجهاز للنظام الأساسي الأجهزة بحيث لا يمكن لأي من هذه المجالات ، المسماة "الخلايا" ، أن تتداخل مع بعضها البعض بطريقة غير مقبولة.
هذا يعني ذلك لا يحاكي Jailhouse الموارد التي لا تملكها. ببساطة يقسم الأجهزة إلى مقصورات معزولة تسمى "الخلايا" إنهم مكرسون بالكامل لبرنامج الضيف الذي يسمى "النزلاء".
حول Jailhouse
تم تحسين Jailhouse من أجل البساطة بدلاً من ثراء الميزات. على عكس برامج Hypervisor الكاملة المستندة إلى Linux مثل KVM أو Xen ، لا يدعم Jailhouse الالتزام المفرط بالموارد مثل وحدة المعالجة المركزية أو ذاكرة الوصول العشوائي أو الأجهزة. لا يقوم بأي برمجة ويقوم فقط بإضفاء الطابع الافتراضي على تلك الموارد الموجودة في البرامج ، والتي تعتبر ضرورية لمنصة ولا يمكن تقسيمها على الأجهزة.
بمجرد تنشيط Jailhouse ، يتم تشغيله بالكامل ، مما يعني أنه يتحكم بشكل كامل في الأجهزة ولا يتطلب أي دعم خارجي.
يتم تنفيذ برنامج Hypervisor كوحدة نمطية لنواة Linux ويوفر المحاكاة الافتراضية على مستوى النواة. تم تضمين مكونات الضيف بالفعل في نواة Linux الرئيسية.
تُستخدم آليات المحاكاة الافتراضية للأجهزة للتحكم في العزلة التي تقدمها وحدات المعالجة المركزية الحديثة. الميزات المميزة لـ Jailhouse هي التنفيذ الخفيف وتوجهها نحو ربط الأجهزة الافتراضية بوحدة المعالجة المركزية الثابتة ومنطقة ذاكرة الوصول العشوائي والأجهزة. يسمح هذا الأسلوب بتشغيل العديد من البيئات الافتراضية المستقلة على خادم فعلي متعدد المعالجات ، يتم تخصيص مركز معالج خاص لكل منها.
من خلال الارتباط الوثيق بوحدة المعالجة المركزية (CPU) ، يتم تقليل النفقات العامة لعملية Hypervisor إلى الحد الأدنى ويتم تبسيط تنفيذها إلى حد كبير ، حيث لا توجد حاجة لإجراء جدول زمني معقد لتخصيص الموارد - يضمن تخصيص نواة منفصلة لوحدة المعالجة المركزية عدم أداء مهام أخرى على وحدة المعالجة المركزية هذه.
تتمثل ميزة هذا النهج في القدرة على توفير وصول مضمون إلى الموارد وأداء يمكن التنبؤ به ، مما يجعل Jailhouse حلاً مناسبًا لإنشاء مهام في الوقت الفعلي. الجانب السلبي هو قابلية التوسع المحدودة ، والتي تعتمد على عدد نوى وحدة المعالجة المركزية.
حول الإصدار الجديد من Jailhouse 0.12
حاليًا ، Jailhouse في نسخته 0.12 ويسلط الضوء على دعم Raspberry Pi 4 Model B و Texas Instruments J721E-EVM.
بالإضافة إلى جهاز ivshmem تستخدم لتنظيم التفاعل بين الخلايا ، تمت إعادة تصميمه ويمكنه أيضًا تنفيذ النقل لـ VIRTIO.
تم تنفيذ القدرة على تعطيل إنشاء صفحات ذاكرة كبيرة (صفحة ضخمة) لمنع الثغرة الأمنية CVE-2018-12207 على معالجات Intel ، مما يسمح للمهاجم غير المتميز ببدء رفض الخدمة ، مما يؤدي إلى التجميد النظام في حالة "خطأ التحقق من الجهاز".
بالنسبة للأنظمة التي تحتوي على معالجات ARM64 ، يتم دعم SMMUv3 (وحدة إدارة ذاكرة النظام) و TI PVU (وحدة المحاكاة الافتراضية الطرفية). بالنسبة لبيئات وضع الحماية التي تعمل أعلى الكمبيوتر ، تمت إضافة دعم PCI.
في أنظمة x86 ، من الممكن تمكين وضع CR4. (منع تعليمات وضع المستخدم) التي توفرها معالجات Intel ، والتي تسمح بحظر تنفيذ تعليمات معينة في مساحة المستخدم ، مثل SGDT و SLDT و SIDT و SMSW و STR ، والتي يمكن استخدامها في الهجمات التي تهدف إلى زيادة امتيازات على النظام.
احصل على Jailhouse
Jailhouse يدعم التشغيل على أنظمة x86_64 مع امتدادات VMX + EPT أو SVM + NPT (AMD-V) ، وكذلك على المعالجات ARMv7 و ARMv8 / ARM64 مع ملحقات الظاهرية.
على أية حال بالإضافة إلى ذلك ، يتم تطوير مُولِّد صور يعتمد على حزم دبيان للأجهزة المتوافقة.
يمكنك العثور على إرشادات التجميع والتثبيت ، بالإضافة إلى معلومات أخرى في الرابط التالي.