عن المشروع

يتيح لك smolvm إدارة وتشغيل أجهزة Linux افتراضية مخصصة محليًا باستخدام المحاكاة الافتراضية للأجهزة (Hypervisor.framework على macOS، وKVM على Linux، وWindows Hypervisor Platform على Windows). وهو مبني على libkrun كـ VMM وlibkrunfw لنواة الضيف، حيث يحصل كل عبء عمل على جهازه الافتراضي ونواة الضيف الخاصة به لعزل قوي. تشمل القدرات الرئيسية: - أجهزة افتراضية دقيقة سريعة وعابرة للمنصات مع بدايات باردة أقل من 200 مللي ثانية، وذاكرة مرنة عبر virtio balloon، وخيوط vCPU خاملة تنام داخل الهايبرفايزر. - Smolfile: ملف تعريف TOML (مشابه لـ Dockerfile ولكن لجهاز افتراضي كامل) يحدد الصورة، والموارد، وسياسة الشبكة، وعمليات التركيب، والمنافذ، وأوامر الإعداد. يتم رفض المفاتيح غير المعروفة عند الإنشاء. - تفريع الأجهزة الافتراضية: نسخ حية عند الكتابة (copy-on-write) لجهاز قيد التشغيل تستأنف مع عمليات المصدر وذاكرته وقرصه. يدعم التفريع الدفعي مع التوزيع، وإشارات جاهزية العامل، وخانات التجمع المحجوزة. - ملفات محمولة: حزم جهاز افتراضي متوقف في ملف .smolmachine واحد يمكن دفعه إلى أي سجل OCI وإعادة تكوينه على أي منصة مدعومة بدون أي تبعيات. - العزل: الشبكة معطلة افتراضيًا؛ يمكن قفل الخروج على مضيفين مسموحين محددين. يتم فصل نظام ملفات المضيف والشبكة وبيانات الاعتماد عبر حدود الهايبرفايزر. - تمرير وكيل SSH: يمكن للضيف استخدام مفاتيح SSH الخاصة بالمضيف لـ git وSSH دون نسخ مادة المفتاح الخاص إلى الجهاز الافتراضي. - صور الحاويات المحلية: الإقلاع من أرشيفات docker save / podman save، أو أنابيب stdin، أو أدلة rootfs غير المحزومة بدون خادم Docker. - أجهزة تطوير دائمة: إنشاء وإيقاف وتشغيل وتنفيذ داخل الأجهزة مع بقاء الحزم المثبتة بعد إعادة التشغيل. تنشر عمليات تركيب أدلة المضيف أحداث inotify لإعادة التحميل السريع. - تكامل Kubernetes: يوفر shim v2 لـ containerd بحيث تعمل الحاويات كأجهزة افتراضية دقيقة عبر RuntimeClass. - تسريع GPU: يكشف GPU الخاص بالمضيف عبر virtio-gpu / Venus (Vulkan-over-virtio) على macOS وLinux. يعيد توجيه واجهة CUDA (--cuda) مكالمات CUDA عبر vsock إلى برنامج تشغيل NVIDIA على المضيف دون تمرير GPU. - نقاط التفتيش: حفظ حالة الجهاز الافتراضي كملف .smolcheckpoint دائم للاستعادة لاحقًا. توفر حزمة Rust (smolvm-checkpoint) تخزينًا تدريجيًا وتصديرًا محمولًا دون الاعتماد على وقت تشغيل الجهاز الافتراضي. الموارد الافتراضية هي 4 vCPUs و8 GiB RAM، قابلة للتجاوز عبر الأعلام أو Smolfile. يعامل نموذج الأمان جذر الضيف كغير موثوق، مع قدرات يتم تمريرها صراحةً (عمليات التركيب، والشبكة، والمنافذ، ووكيل SSH) لتصبح جزءًا من سلطة عبء العمل. المشروع مرخص بموجب Apache-2.0.