عن المشروع

Hyperlight هو مدير آلات افتراضية (VMM) خفيف الوزن مخصص للتضمين كمكتبة داخل التطبيقات، مما يتيح لها تنفيذ تعليمات برمجية غير موثوقة داخل أجهزة افتراضية دقيقة معزولة بواسطة الهايبرفايزور. وهو مشروع ضمن الحاضنة التابعة لمؤسسة الحوسبة السحابية الأصلية (Cloud Native Computing Foundation)، وهو حالياً في مرحلة ما قبل الإصدار 1.0، لذا قد تتغير واجهة برمجة التطبيقات بين الإصدارات. كيف يعمل: يبني تطبيق المضيف بيئة معزولة (sandbox) من ملف ثنائي للضيف ويستدعي الدوال عبر حدود الآلة الافتراضية تماماً كما يستدعي الدوال المحلية. الضيوف عبارة عن ملفات ثنائية ELF مبنية لهذا الغرض ومكتوبة بلغة Rust بدون std أو بلغة C، دون نواة أو نظام تشغيل للضيف، مما يحافظ على انخفاض زمن البدء واستهلاك الذاكرة. يتواصل المضيف والضيف عبر استدعاءات دوال مكتوبة (typed function calls)، ويكون الضيوف معزولين افتراضياً دون أي وصول إلى نظام ملفات المضيف أو شبكته. تستمر حالة الضيف عبر الاستدعاءات، ويمكن لـ snapshot()/restore() حفظ وإعادة ضبط ذاكرة الآلة الافتراضية بحيث يمكن إعادة استخدام البيئات المعزولة دون إعادة إنشاء الآلة الافتراضية. تشمل الهايبرفايزورات المدعومة KVM وMSHV وWindows Hypervisor Platform. يعرض ملف README مثالاً للمضيف يسجل دالة مضيف ويستدعي الضيف، ومثالاً للضيف يستخدم وحدات ماكرو مثل #[host_function] و#[guest_function]. تشمل حالات الاستخدام المذكورة تشغيل تعليمات برمجية غير موثوقة أو من طرف ثالث مع عزل على مستوى الهايبرفايزور، وإنشاء البيئات المعزولة وإزالتها خلال أجزاء من الثانية، وإجراء استدعاءات دوال الضيف خلال أجزاء من المليون من الثانية، وتضمين تنفيذ معزول داخل تطبيق، وبناء وظائف كخدمة (functions-as-a-service) مع عزل الهايبرفايزور، وإعادة استخدام البيئات المعزولة عبر snapshot وrestore. يذكر المشروع صراحةً أنه غير مخصص للافتراضية العامة أو لتشغيل أحمال عمل ضيف Linux كاملة تحتاج إلى استدعاءات نظام (syscalls) أو شبكات أو وصول إلى نظام الملفات. ينقسم المستودع إلى مكتبات المضيف والضيف، وواجهة C API، ومكتبة libc للضيف مبنية من picolibc، ووحدات ماكرو للضيف والمكونات، ودعم التتبع (tracing)، وكود مشترك، وتعريفات مخطط FlatBuffer، وأداة تفريغ التتبع، وبرامج ضيف اختبارية بلغة Rust وC. تشمل المشاريع ذات الصلة cargo-hyperlight لبناء الضيوف وتجهيز هياكلها، وhyperlight-wasm لوحدات WebAssembly، وhyperlight-js لجافاسكريبت، وhyperlight-sandbox للعزل متعدد الخلفيات مع حزم تطوير Python و.NET وRust، وhyperlight-unikraft لتشغيل تطبيقات Linux باستخدام Unikraft كنواة للضيف. تتوفر الوثائق وإرشادات المساهمة وتفاصيل اجتماعات المجتمع في المستودع.