Об этом проекте
Этот проект — независимый, неофициальный тестовый стенд для поддержки дисплея и GPU в микровиртуальных машинах microsandbox на Apple Silicon. microsandbox запускает Linux-микровиртуальные машины, но не имеет дисплейного пути; этот проект реализует его в форке своей среды выполнения: 2D-скан-аут virtio-gpu, отображаемый в нативном окне macOS, virtio-input, текстовый буфер обмена через vsock и virtio-snd через CoreAudio. Рабочая нагрузка — полноценный рабочий стол Omarchy (Hyprland + Quattro), выбранный потому, что настоящий композитор выявляет проблемы, которые не проявил бы тестовый шаблон.
Статус GPU: гостевая система рендерит с помощью llvmpipe из Mesa на CPU, а virtio-gpu передаёт готовые кадры на хост. Пока ничего не аппаратно-ускорено; Venus (гостевой Vulkan на GPU Mac через MoltenVK) описывается как следующий эксперимент.
Что он предоставляет:
- Постоянная настольная ВМ: создайте один раз, закрывайте и снова открывайте окно или останавливайте и возобновляйте с сохранением файлов и настроек.
- Нативная интеграция с Mac: окно дисплея macOS, ввод с клавиатуры и указателя, синхронизация текстового буфера обмена и вывод звука.
- Рабочий стол, настроенный для программного рендеринга: два профиля дисплея (лёгкий 1600x900, стандартный 1920x1080), увеличенный текст, непрозрачные окна и отключённые анимации, размытие и тени. Прослойка glFlush-to-glFinish заставляет композитор ждать llvmpipe перед каждым коммитом.
- Приложения с первой загрузки: Chromium, Nautilus, Foot, шрифты CJK и Fcitx5 Pinyin, с рабочими ассоциациями браузера и файлового менеджера по умолчанию.
- Явное совместное использование файлов: записываемый каталог Shared, смонтированный в ~/Shared, доступный из верхней панели и боковой панели файлового менеджера.
- Изолированная среда выполнения с загрузками среды выполнения и прошивки с контрольными суммами и локальным для проекта состоянием ВМ.
- Записанная валидация: тесты лаунчера и релиза, проверки гостевого образа, дымовые тесты Mac, скриншоты и измерения, привязанные к протестированному образу.
Быстрый старт требует Mac на Apple Silicon с Hypervisor.framework, Git, Python 3.9+, Homebrew и хостовые библиотеки (slp/krun/virglrenderer, molten-vk, libepoxy). Команды: bin/setup загружает и проверяет закреплённую среду выполнения и прошивку; bin/doctor проверяет поддержку хоста; bin/run создаёт рабочий стол и открывает его нативное окно. При первом запуске загружается опубликованный гостевой образ размером примерно 6 ГБ. Каждая ВМ по умолчанию имеет 4 vCPU, 4G RAM и 16G записываемого диска. Рабочая копия должна находиться по короткому пути, поскольку пути сокетов среды выполнения должны укладываться в 104 байта.
Ежедневные операции включают bin/run (создать, возобновить или снова открыть), bin/run --no-display, bin/pause, bin/stop, bin/msb list, bin/screenshot и bin/doctor. Несколько именованных рабочих столов могут работать одновременно с разными портами VNC. Сброс выполняется явно через bin/reset --name work --yes. Клавиша Command на Mac отображается на Super внутри Omarchy; сочетания включают Command+Enter для терминала, Command+K для сочетаний клавиш, Command+Shift+Enter для браузера, Command+Shift+F для файлового менеджера и Ctrl+Space для переключения ввода между английским и китайским Pinyin.
VNC доступен по адресу vnc://127.0.0.1:5901 для рабочего стола по умолчанию; гостевой слушатель не имеет аутентификации и перенаправляется только на 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 и закрывают любой существующий нативный просмотрщик для этой ВМ.
Записанные проектом выводы включают: при NO_VIRGL устройство virtio-gpu отклоняет каждую 2D-команду на macOS, поэтому хост никогда не получает кадр, и форк добавляет режим только для 2D; Hyprland решает, ждать ли рендеринга, по имени драйвера DRM, поэтому на virtio-gpu он сканирует наполовину отрисованные кадры llvmpipe, что исправляется прослойкой glFlush-to-glFinish; настольную ВМ можно приостановить и возобновить примерно за 30 мс, но нельзя создать контрольную точку, поскольку virtio-gpu и virtio-snd не могут перейти в состояние покоя; и msb, собранный локально против macOS 27 SDK, не может создавать контрольные точки HVF.
Статус в upstream: изменения дисплея были предложены microsandbox и msb_krun в августе 2026 года и отозваны без рассмотрения 2026-09-23 как слишком большие для рассмотрения и сильно отставшие. Форк сохраняется как тестовое средство, а не предлагается целиком. Проект не связан с microsandbox, libkrun, Omarchy или Hyprland и не одобрен ими. Он дополняет omarchy-microsandbox, плагин Omarchy для управления ВМ; здесь сам рабочий стол Omarchy работает внутри ВМ. Лицензирован под MIT, при этом включённая среда выполнения и гостевое программное обеспечение сохраняют свои upstream-лицензии.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.