A
Air官方
当一款软件既没有源码可改、也没有库可直调,唯一剩下的活体就是它完整的系统镜像——这时 QEMU 全系统模拟路线登场:在鸿蒙设备上跑一个完整虚拟机,让原系统连同软件原样运行。Air 系列的虚拟机工程就是这条路线的落地。
▍原理
QEMU 用 TCG(Tiny Code Generator)把客户机指令动态翻译成宿主指令执行。设备侧呈现virtio 虚拟外设:磁盘、网卡、显卡、声卡。在鸿蒙上运行,核心工程是三块:TCG 翻译引擎在 musl 与沙箱约束下的适配;虚拟 CPU 拓扑与中断控制器(GIC)配置;图形输出接 OHOS 窗口,输入从触摸翻译成客户机的鼠标键盘。
▍这条路线的真实坑带
全系统模拟的坑密度是所有路线之最,Air 系列的记录也最厚:多核加速(MTTCG)与中断控制器版本组合不当会导致恢复快照时卡死,要按机型验证组合;开机动画阶段单线程翻译撑不住会跑半小时量级,要针对性优化启动路径;快照保存与恢复涉及固件变量的写回,处理不当会把镜像楔死;声音从 virtio 声卡换到传统模拟声卡才稳定;磁盘镜像扩容要预留用户分区预算,否则装两个软件就满。
▍适用场景
必须运行完整原系统的场景:老旧系统上的专用行业软件、需要原环境多软件协同的工作流、教学演示环境。它买来的是兼容性,付出的是性能税与内存税。
▍性能预期管理
翻译执行下,客户机速度大约是原生的几分之一,轻办公与工具类软件可流畅,重计算不现实。给用户的正确话术是:虚拟机解决有没有,不是快不快。
▍价值
对存量软件遗产,这条路线是终极兜底:只要原系统能跑,鸿蒙设备上就能跑。Air 虚拟机工程把 QEMU 的嵌入、快照、共享目录(vvfat 类方案)都趟了一遍,经验可复用。
更多真实移植案例,欢迎到 apps 板块翻看 56 篇《鸿蒙PC适配全记录》系列实录。
▍原理
QEMU 用 TCG(Tiny Code Generator)把客户机指令动态翻译成宿主指令执行。设备侧呈现virtio 虚拟外设:磁盘、网卡、显卡、声卡。在鸿蒙上运行,核心工程是三块:TCG 翻译引擎在 musl 与沙箱约束下的适配;虚拟 CPU 拓扑与中断控制器(GIC)配置;图形输出接 OHOS 窗口,输入从触摸翻译成客户机的鼠标键盘。
▍这条路线的真实坑带
全系统模拟的坑密度是所有路线之最,Air 系列的记录也最厚:多核加速(MTTCG)与中断控制器版本组合不当会导致恢复快照时卡死,要按机型验证组合;开机动画阶段单线程翻译撑不住会跑半小时量级,要针对性优化启动路径;快照保存与恢复涉及固件变量的写回,处理不当会把镜像楔死;声音从 virtio 声卡换到传统模拟声卡才稳定;磁盘镜像扩容要预留用户分区预算,否则装两个软件就满。
▍适用场景
必须运行完整原系统的场景:老旧系统上的专用行业软件、需要原环境多软件协同的工作流、教学演示环境。它买来的是兼容性,付出的是性能税与内存税。
▍性能预期管理
翻译执行下,客户机速度大约是原生的几分之一,轻办公与工具类软件可流畅,重计算不现实。给用户的正确话术是:虚拟机解决有没有,不是快不快。
▍价值
对存量软件遗产,这条路线是终极兜底:只要原系统能跑,鸿蒙设备上就能跑。Air 虚拟机工程把 QEMU 的嵌入、快照、共享目录(vvfat 类方案)都趟了一遍,经验可复用。
更多真实移植案例,欢迎到 apps 板块翻看 56 篇《鸿蒙PC适配全记录》系列实录。
楼主
7 天前