关于 ZVM
嵌入式实时虚拟机ZVM是一款面向嵌入式智能装备场景的实时Type-1 Hypervisor,是支撑“一芯多 OS”混合部署与协同运行的自主可控基础软件平台。ZVM自2021年启动自主研发,由谢国琪教授团队长期坚持核心技术自研与工程化实践打造,是面向嵌入式实时虚拟化领域的原创品牌。
面向汽车、航天、船舶、电力等安全攸关领域,ZVM可在单颗芯片上同时运行多个相互隔离的功能域,独立承载Linux、openEuler Embedded、OpenHarmony、Android、Zephyr RTOS、NuttX RTOS、FreeRTOS等 Guest OS,实现多操作系统、多任务形态、多安全等级应用的协同运行。
ZVM提出了“实时操作系统原生虚拟化”技术路线,将实时内核与虚拟化核心在ARM EL2特权级一体化融合,形成实时内核、无 Domain0、超级VHE 、静态1V1绑定、VirtIO/SR-IOV内置等核心优势,显著提升系统实时性、确定性和可控性。ZVM核心基础代码规模控制在4万行以内,为功能安全认证和长期维护提供了轻量化基础。
围绕ZVM的工程化应用,配套研制了可视化管理软件VisualZVM。支持Guest OS生命周期管理、运行状态监控、资源使用分析,服务于系统调试、性能观察和测试验证,帮助用户直观掌握系统行为。
目前,ZVM已联合瑞芯微、飞腾等国产芯片厂商推出多款发行版,持续服务汽车、航天、船舶、电力等关键领域,推动国产嵌入式基础软件在智能装备场景中的工程化应用。
各Hypervisor对比
ZVM与Xen、Xvisor、Jailhouse、BAO Hypervisor相比,在初始化、内核隔离、外设管理、可视化工具、自动化测试等各方面具备全面领先优势。
| 对比项 | Xen | Xvisor | Jailhouse | BAO Hypervisor | QNX Hypervisor | ZVM |
|---|---|---|---|---|---|---|
| 是否依赖Linux完成初始化? | 是❌ | 否✅ | 是❌ | 否✅ | 否✅ | 否✅ |
| 是否依赖Linux管理Guest OS生命周期? | 是❌ | 否✅ | 是❌ | 否✅ | 否✅ | 否✅ |
| 是否依赖Linux管理I/O? | 是❌ | 否✅ | 是❌ | 否✅ | 否✅ | 否✅ |
| Hypervisor与Guest OS是否共享物理CPU? | 是❌ | 是❌ | 否✅ | 否✅ | 否✅ (默认) |
否✅ (默认) |
| 是否支持外设VirtIO共享? | 是✅ (Domain 0方式) |
是✅ (内置方式) |
否❌ | 否❌ | 是✅ (内置方式) |
是✅ (内置方式) |
| 是否支持外设SR-IOV共享? | 是✅ (Domain 0方式) |
否❌ | 否❌ | 否❌ | 否❌ | 是✅ (内置方式) |
| 是否具备专门的可视化管理工具? | 否❌ | 否❌ | 否❌ | 否❌ | 是✅ | 是✅ |
| 是否具备自动化测试系统? | 否❌ | 否❌ | 否❌ | 否❌ | 是✅ | 是✅ |
ZVM-RK3588v2.1发行版性能表现——ZVM关键性能指标
| 序号 | 指标项 | 指标值 | 测试方法 |
|---|---|---|---|
| 1 | 上电自启动时间 | < 2.2 s | MobaXterm_26.3输出自带毫秒级时间戳 |
| 2 | 虚拟化性能损耗 | < 2% | UnixBench测试集(实测打分体现) |
| 3 | VirtIO-Net吞吐量损耗 | < 8% | iperf3测试集(实测带宽体现) |
| 4 | Guest OS时间同步精度 | < 25 ns | 高精度定时器计数方式(耗时1 ms内) |
| 5 | 共享内存通信延迟(Zephyr-Zephyr) | < 10 us | timing_test测试集(基于高精度定时器) |
| 6 | 共享内存通信带宽 (Linux-Linux) | > 1000 Mbps |
ZVM-RK3588v2.1发行版性能表现——Guest OS(Zephyr RTOS)实时性指标
| 序号 | 指标项 | 指标值 | 测试方法 |
|---|---|---|---|
| 1 | 上电自启动时间 | < 3 s | MobaXterm_26.3输出自带毫秒级时间戳 |
| 2 | 最大中断响应延迟 | < 9 us | irqtest测试集(基于高精度定时器) |
| 3 | 最大唤醒延迟 | < 10 us | cyclictest测试集 |
| 4 | 最大抢占延迟 | < 3 us | task_preempt测试集 |
| 5 | 最大上下文切换延迟 | < 3 us | task_switch测试集 |
| 6 | 最大完成时间抖动 | < 2 us | task_jitter测试集 |
ZVM-RK3588v2.1发行版性能表现——Guest OS(NuttX RTOS)实时性指标
| 序号 | 指标项 | 指标值 | 测试方法 |
|---|---|---|---|
| 1 | 上电自启动时间 | < 3 s | MobaXterm_26.3输出自带毫秒级时间戳 |
| 2 | 最大中断响应延迟 | < 8 us | irqtest测试集(基于高精度定时器) |
| 3 | 最大唤醒延迟 | < 10 us | cyclictest测试集 |
| 4 | 最大抢占延迟 | < 3 us | task_preempt测试集 |
| 5 | 最大上下文切换延迟 | < 3 us | task_switch测试集 |
| 6 | 最大完成时间抖动 | < 2 us | task_jitter测试集 |
ZVM-RK3588v2.1发行版性能表现——Guest OS(FreeRTOS)实时性指标
| 序号 | 指标项 | 指标值 | 测试方法 |
|---|---|---|---|
| 1 | 上电自启动时间 | < 3 s | MobaXterm_26.3输出自带毫秒级时间戳 |
| 2 | 最大中断响应延迟 | < 8 us | irqtest测试集(基于高精度定时器) |
| 3 | 最大唤醒延迟 | < 10 us | cyclictest测试集 |
| 4 | 最大抢占延迟 | < 4 us | task_preempt测试集 |
| 5 | 最大上下文切换延迟 | < 5 us | task_switch测试集 |
| 6 | 最大完成时间抖动 | < 2 us | task_jitter测试集 |
社区与发行
- ZVM 社区代码仓库: https://atomgit.com/openeuler/zvm
- ZVM 镜像发行仓库: http://esnl.hnu.edu.cn/zvm/zvm-releases/index.html