عن المشروع

هذا المشروع عبارة عن بيئة اختبار مستقلة وغير رسمية لدعم العرض والرسومات في microVMs الخاصة بـ microsandbox على شريحة Apple Silicon. يعمل microsandbox على تشغيل VMs لينكس لكنه لا يدعم مسارات العرض؛ ويأت هذا المشروع بواحد عبر Fork من runtime: عرض 2D عبر virtio-gpu يظهر في نافذة macOS أصلية، ودعم الإدخال عبر virtio-input، وحافظة نصية عبر vsock، وصوت عبر virtio-snd مع CoreAudio. الحمل المستخدم هو سطح مكتب Omarchy كامل (Hyprland + Quattro)، واختير لأن كومبوزتر حقيقي يكشف مشكلات لا تكشفها أنماط الاختبار. حالة GPU: يقوم الـ guest بالرسم باستخدام llvmpipe من Mesa على المعالج، وينقل virtio-gpu الإطارات المكتملة إلى الـ host. لا يوجد تسريع عتادي بعد؛ ويُوصف Venus (Vulkan بالguest عبر MoltenVK على GPU ماك) على أنه التجربة التالية. ما يوفره المشروع: - VM سطح مكتب دائم: ينشأ مرة واحدة، ويُغلق وتُعاد فتح النافذة أو يُوقف ويُستأنف مع الاحتفاظ بالملفات والإعدادات. - تكامل أصلي مع ماك: نافذة عرض macOS، ولوحة مفاتيح ومؤشر، ومزامنة الحافظة النصية، وإخراج صوتي. - سطح مكتب مُضبط للتصيير البرمجي: ملفا عرض (خفيف 1600x900، قياسي 1920x1080)، ونصوص أكبر، ونوافذ غير شفافة، وتعطيل الرسوم المتحركة والضبابية والظلال. وشيم glFlush-to-glFinish يجعل الكومبوزتر ينتظر llvmpipe قبل كل commit. - تطبيقات جاهزة من أول تشغيل: Chromium وNautilus وFoot وخطوط CJK وFcitx5 Pinyin، مع ربط افتراضي يعمل للمتصفح ومدير الملفات. - مشاركة ملفات صريحة: مجلد Shared قابل للكتابة مُثبت على ~/Shared، ويمكن الوصول إليه من الشريط العلوي وشريط الجوارب في مدير الملفات. - runtime معزول مع downloads مُحققة checksums للـ runtime والfirmware وحالة VM محلية. - نتائج تحقق مُدونة: اختبارات launcher وrelease، وفحوصات صورة الـ guest، واختبارات Mac الدخان، لقطات وشاشات مرتبطة بصورة الاختبار. البدء السريع يتطلب Mac بشريحة Apple Silicon مع Hypervisor.framework وGit وPython 3.9+ وHomebrew ومكتبات host (slp/krun/virglrenderer وmolten-vk وlibepoxy). الأوامر: bin/setup يحمل ويحقق من الـ runtime وfirmware المثبتين؛ bin/doctor يفحص دعم الـ host؛ bin/run ينشئ سطح المكتب ويفتح النافذة الأصلية. يحمل التشغيل الأول صورة guest منشورة بحجم نحو 6 غيغابايت. يضبط كل VM افتراضياً على 4 vCPUs و4G RAM وقرص قابل للكتابة 16G. يجب أن يكون الـ checkout في مسار قصير لأن مسارات socket runtime يجب أن تتسع لـ 104 بايت. العمليات اليومية تشمل bin/run (إنشاء، استئناف أو إعادة فتح)، bin/run --no-display، bin/pause، bin/stop، bin/msb list، bin/screenshot، وbin/doctor. يمكن تشغيل عدة سطح مكتب مسماة بشكل متزامن مع منافذ VNC مميزة. الإعادة الضبط صريحة عبر bin/reset --name work --yes. مفتاح Mac Command يترجم إلى Super داخل Omarchy؛ الاختصارات تشمل Command+Enter لنافذة طرفية، Command+K للاختصارات، Command+Shift+Enter للمتصفح، Command+Shift+F لمدير الملفات، وCtrl+Space للتبديل بين الإنجليزية والصينية Pinyin. متاح VNC على vnc://127.0.0.1:5901 لسطح المكتب الافتراضي؛ المستمع في الـ guest لا يحتاج مصادقة ويُوجه فقط إلى loopback. لا تدعم حافظة الصور. متغيرات التكوين تشمل NAME وPROFILE وCPUS وMEMORY وROOT_DISK وSHARED_DIR وVNC_PORT وTAG وMSB_GPU_DISPLAY، بالإضافة إلى تجاوزات متقدمة MSB وMSB_LIBKRUNFW_PATH وMSB_HOME. أوامر التحقق تشمل bin/check وbin/smoke --profile light وbin/smoke --profile standard وbin/frame-check وbin/publish --check. أدوات التشخيص تشمل bin/measure-display وbin/display-shot، اللتان تربطان بوحدة عرض display.sock الوحيدة وتغلق أي viewer أصلي موجود لذلك VM. النتائج المسجلة بالمشروع تشمل: مع NO_VIRGL، يجرف جهاز virtio-gpu كل أمر 2D على macOS ولا يستقبل الـ host أي إطار، ويضيف الـ fork وضع 2D فقط؛ ويقرر Hyprland الانتظار للرسومات من اسم驱动 DRM، لذا على virtio-gpu يعرض إطارات llvmpipe غير مكتملة، وهو ما يُصلح بشيم glFlush-to-glFinish؛ ويمكن إيقاف واستئناف VM سطح المكتب في نحو 30 مللي ثانية لكن لا يمكن checkpointه لأن virtio-gpu وvirtio-snd لا يمكنهما الهدوء؛ وـ msb المبنى محلياً ضد macOS 27 SDK لا يستطيع أخذ HVF checkpoints. حالة الـ upstream: عُرضت تغييرات العرض على microsandbox وmsb_krun في أغسطس 2026 وسُحبت غير مراجعة في 2026-09-23 لأنها كبيرة جداً للمراجعة ومتأخرة كثيراً. يُحتفظ بالـ fork كوسيط اختبار بدلاً من اقتراحه ككل. المشروع غير تابع أو معتمد من microsandbox أو libkrun أو Omarchy أو Hyprland. يكمل omarchy-microsandbox، وهو plugin Omarchy لإدارة VMs؛ هنا يعمل سطح مكتب Omarchy نفسه داخل الـ VM. مرخص تحت MIT، مع احتفاظ runtime والبرمجيات بالـ guest تراخيص upstream.