Karton: родной менеджер виртуальных машин KDE становится ближе к стабильному релизу
- Категория: Linux
- Дата: 10 июля 2025 г. в 14:40
- Просмотров: 8
Несколько месяцев назад мы рассказывали о Karton, проекте студента Google Summer of Code, Дерека Лина. Разработчики надеются, что он станет достойной заменой таким инструментам, как virt-manager и GNOME Boxes, и предоставит пользователям KDE Plasma удобный инструмент "из коробки" для работы с виртуальными машинами.
После нескольких недель активной работы над кодом, Лин поделился новостями о прогрессе проекта и рассказал, когда можно ожидать стабильный релиз.
Отказ от virt-install
Первое важное изменение: установщик виртуальных машин, о котором упоминалось ранее, теперь интегрирован в основную ветку проекта. Это означает полный отказ от зависимости от virt-install
. Теперь Karton использует libosinfo
для определения операционной системы из образа диска и самостоятельно генерирует необходимую конфигурацию libvirt XML.
Лин также обновил QML-модули (строительные блоки KDE для создания пользовательских интерфейсов), чтобы они соответствовали более современным стандартам обработки компонентов приложений.
SPICE клиент
Основная часть недавней работы была посвящена созданию SPICE-клиента с нуля. SPICE – это протокол удаленного рабочего стола, который отвечает за отображение картинки, передачу звука и управление в гостевой системе (виртуальной машине). Лин рассказал, что потратил немало времени на то, чтобы изображение с виртуальной машины корректно отображалось в окне KDE.
Получение и отображение "сырых" данных с экрана виртуальной машины оказалось непростой задачей. На первых этапах разработки изображение было искажено странными цветами и артефактами прозрачности.
После множества экспериментов с обработкой изображения, Лин обнаружил, что проблема заключалась в рассинхронизации: код пытался читать данные с экрана одновременно с тем, как SPICE пытался их записать, что и приводило к искажениям. Решение оказалось простым: перед отображением данных делается их копия. И вот результат:
После решения проблем с отображением, на виртуальную машину была успешно настроена передача пользовательских данных, таких как щелчки мыши и нажатия клавиш. Небольшая сложность возникла с тем, что события клавиш Qt используют скан-коды evdev
, в то время как SPICE ожидает более старый формат PC XT
, что потребовало ручного сопоставления.
После нескольких месяцев интенсивной работы, вот видео, демонстрирующее работу Karton с запущенной виртуальной машиной Fedora:
На видео заметно, что прокрутка работает не очень плавно, но разработчики обещают исправить это в следующих обновлениях.
Что дальше?
Лин признает, что текущий метод рендеринга не самый эффективный и вызывает "разрывы" изображения. Он планирует изучить свойство SPICE gl-scanout
для оптимизации производительности.
В планах также реализация передачи звука, корректной обработки перетаскивания мышью и переработка пользовательского интерфейса с добавлением боковой панели, как в UTM, менеджере виртуальных машин для macOS.
Если вас заинтересовал проект, вы можете следить за его разработкой на странице GitLab.
Karton – это многообещающий проект, который может значительно упростить работу с виртуальными машинами для пользователей KDE. Работа, проделанная Дереком Лином, впечатляет, и мы с нетерпением ждем новых обновлений и стабильного релиза.
- Комментарии