KDE is finally getting a native virtual machine manager called "Karton"
KDE 终于要拥有名为 "Karton" 的原生虚拟机管理器了
如果你经常使用 GNOME,你可能已经用过类似 GNOME Boxes 的工具,可以轻松地启动虚拟机。事实上,我们在今年的Linux 新手必备应用列表中也提到了它。然而,KDE 用户通常需要依赖 virt-manager 这样的工具,甚至 GNOME Boxes 本身。虽然这些工具能用,但用在 Plasma 桌面环境下总感觉不太协调,而基于 Qt 的替代方案 qt-virt-manager 的开发也已经停滞多年。
现在,一个新的虚拟机管理器正在为 KDE Plasma 开发中。这个名为 Karton 的项目,起源于 Aaron Rainbolt 最初尝试使用命令行界面构建一个 QEMU 前端。后来,KDE 开发者 Harald Sitter 接手,并将其发展成为一个 Google Summer of Code 项目。
目前,Karton 正由 Derek Lin 积极开发,他是滑铁卢大学的一名学生,参与了 2025 年的 Google Summer of Code。他的主要目标是交付一款真正属于 KDE 生态系统的虚拟机管理器。
为了更好地融入 KDE,Karton 正在使用 Qt Quick 和 Kirigami 构建。它使用 libvirt API 来处理虚拟机,并最终可能跨不同平台工作。
目前,开发重点是完善核心部分。Lin 正在开发一个新的域安装程序,该程序放弃了直接调用 virt-install
,转而使用 libosinfo,这有助于检测操作系统镜像,并生成正确的 libvirt XML,从而更精确地设置虚拟机。他仍在改进设备配置,并致力于更广泛的 hypervisor 支持。这项工作的另一个关键部分是,从头开始使用 Qt Quick 构建自定义 SPICE 查看器:
如果你感兴趣,这里是 Lin 在他的 GSoC 提案中包含的具体交付成果列表,不过他指出该提案本身有点过时:
- 通过 libvirt 的 XML 格式安装和配置虚拟机,而不是 virt-install CLI
- 在 UI 中添加配置常用选项的功能
- 允许更精细地控制虚拟机选项
- 实现一个自定义 SPICE 查看器,允许用户与活动的虚拟机交互和查看(而不是 virt-viewer)
- 虚拟机快照,用于恢复/备份以前的状态
- 用于显示虚拟机的直观 UI
- 通过解决社区反馈,制作一个用户友好且美观的 GUI
- 参考 MacOS UTM 列表布局 和 VM 的预览
- 使 UI 融合(移动友好)
- 使用 libvirt API virEventRegisterImpl 函数检索虚拟机状态更新,而不是使用默认的内置事件循环。
- 允许它与自定义 Qt 事件循环集成
- 减少当前加载虚拟机列表页面的延迟
- 添加一个浏览工具,列出常用的已安装操作系统
- 像 virt-manager 中那样显示 GPU/内存使用图
- 在连接到 QEMU hypervisor 时,可以在会话(用户)和系统(root)之间切换 的功能。
- GNOME Boxes 似乎只支持“会话”,但是添加对“系统”的支持对于非 KVM/Linux 后端(如 bhyve (FreeBSD) 或 Hyper-V)可能很有用
对于那些对时间线感兴趣的人,Lin 的 GSoC 提案说,官方的 GSoC 编码将于 2025 年 6 月 2 日开始。目标是在 2025 年 7 月 14 日左右的中期评估之前准备好一个可用的应用程序,最终提交截止日期为 2025 年 9 月 1 日。