Karton 项目获重大进展,KDE 原生虚拟机管理工具即将诞生

抖音秀 热点资讯 13

7 月 11 日消息,科技媒体 NeoWin 昨日(7 月 10 日)发布博文,KDE Plasma 桌面环境原生虚拟机管理器 Karton 项目获得重大进展,已重构 SPICE 客户端,并支持用户输入等功能。

IT之家注:在该项目问世前,KDE 用户通常依赖 virt-manager、GNOME Boxes 等工具,这些工具虽然功能齐全,但未完全融入 Plasma 桌面环境。

Karton 项目计划为 KDE Plasma 桌面环境,开发原生虚拟机管理器,由谷歌 Summer of Code 学生 Derek Lin 开发。

Lin 更新了项目进展,并透露该项目即将发布稳定版。首先,虚拟机安装器已经合并到主分支中,从而完全摆脱对 virt-install 的依赖。

Karton 现在使用 libosinfo 来识别磁盘镜像的操作系统,并自行生成必要的 libvirt XML 配置。

Lin 更新了 QML 模块,这是 KDE 创建用户界面的构建块,现在以更标准的方式处理应用程序组件。

Lin 近期的工作重心,是从头构建 SPICE 客户端。SPICE 是一种远程桌面协议,负责处理客户机的显示、音频和输入。Lin 表示,他花费了大量时间使虚拟机在原生 KDE 窗口中正确显示。

他表示将 SPICE 的原始显示数据绘制到屏幕上的过程相当棘手,开发初期,图像充满了奇怪的颜色和透明度故障。

经过尝试不同的图像数据处理方式,他发现根本原因是时间问题:他的代码试图在 SPICE 尝试写入数据的同一时刻读取显示数据,导致了混乱。修复方法很简单:他在显示数据之前快速复制了一份,结果看起来好多了。

此外鼠标点击和键盘按键等用户输入已经可以转发到虚拟机。一个小问题是 Qt 按键事件使用 evdev 扫描码,而 SPICE 期望的是较老的 PC XT 格式,因此目前需要手动映射。

经过数月的艰苦工作,以下是 Karton 运行 Fedora 虚拟机的屏幕录制视频。从视频中可以看出,滚动时会有明显的卡顿,但预计在未来的更新中会得到解决。

关于接下来的计划,Lin 承认当前的渲染方法效率低下且导致撕裂。他希望研究 SPICE 的 gl-scanout 属性以优化性能。

他还计划实现音频转发和正确的鼠标拖动事件,并重新设计用户界面,包括类似 UTM(为 Apple 平台如 macOS 设计的虚拟机管理器)的侧边栏。