ZVM 特性:轻量化架构
01 概述
在嵌入式与实时系统领域,Hypervisor 的架构层级与代码规模直接决定了系统的实时性、可控性以及工程落地成本。
本文围绕两个常被关注的问题展开说明:
(1) ZVM 的代码规模到底有多大?
(2)ZVM 在架构上是否属于Type 1 Hypervisor?
通过对ZVM架构组成、代码体量、性能数据及其与主流虚拟化方案的对比分析,本文给出明确结论:ZVM 是一款面向嵌入式与实时场景的轻量级Type 1 Hypervisor。
02 ZVM 核心代码规模
ZVM 采用“实时内核与原生虚拟化一体化设计”,核心代码体量极小:
实时内核 (RTOS)
2.4万行
虚拟化相关
1.4万行
总计规模
9.6万行
代码分布可视化 (Total: 9.6W LOC)
* 网络栈占子系统约 65% (2.4W LOC)
即便纳入网络栈、通用子系统、依赖库、驱动、架构代码与板级支持包(BSP),总代码量仍控制在 10 万行以内。这一代码体量显著小于 Xen、Xvisor 等主流 Type 1 Hypervisor,体现了 ZVM 面向嵌入式与实时系统的轻量化设计取向。
03 代码规模带来的工程价值
- 更低的功能安全认证与合规成本:代码量越小,功能安全(Functional Safety)审计与合规门槛越低。
- 更高的代码可审计性与可验证性:便于进行深度代码审计与形式化验证。
- 更易进行深度裁剪与场景定制:能够针对特定工业或车载场景进行“外科手术式”的深度裁剪。
04 性能表现与架构佐证
在实际测试中,ZVM同时运行RTOS与Debian Linux两款客户操作系统,在多个测试集上表现稳定(相对于裸金属):
如此低的虚拟化开销表明,ZVM 并非依赖宿主操作系统提供资源管理能力,而是直接介入并掌控底层硬件资源。这一性能指标不可能由 Type 2 Hypervisor 达成,进一步从侧面印证了 ZVM 的 Type 1 架构特征。
图1:性能指标对比
05 Type 1 与 Type 2 的区分标准
Type 1 (Bare-Metal)
- • 直接运行在硬件之上
- • 先于客户 OS 启动
- • 统一管理 CPU/内存/中断
- • 典型代表:Xen, Xvisor, ZVM
图2:常见 Type-1 Hypervisor 架构
Type 2 (Hosted)
- • 运行在宿主 OS 之上
- • 依赖宿主驱动与管理能力
- • 面向桌面与开发场景
- • 典型代表:VMware, VirtualBox
图3:常见 Type-2 Hypervisor 架构
06 系统架构定论
在早期技术交流中,ZVM 曾被描述为 “Type 1.5 Hypervisor”。这一说法的出发点,并非对其架构层级的重新定义,而是用于解释 ZVM
在工程实现方式上的灵活性。从架构本质上看,ZVM 始终属于 Type 1 Hypervisor。
之所以在部分场合出现 “Type 1.5” 的表述,是因为 ZVM 在 Type 1 架构基础之上,充分利用了 Zephyr RTOS
的模块化设计能力,在工程实现层面实现了高度灵活的组件复用方式。例如,在某些使用形态下,ZVM 可以复用 Zephyr
已有的驱动与子系统,以降低系统集成成本并提升开发效率。这种工程实践在嵌入式虚拟化领域并不罕见,QNX Hypervisor 等成熟产品亦采用了类似思路。QNX
Hypervisor官方文档给了个示意图,指出它的本质基础是Type 1,但具备跨Type 1(嵌入式)到Type 2(桌面)的虚拟化能力。
图4:QNX 官方对跨形态虚拟化能力的示意
ZVM 的工程侧重点体现为两种形态:
- 面向嵌入式与实时场景的 ZVM 发行版:实时内核、子系统与 BSP 均经过深度裁剪,重点关注确定性、可控性与功能安全需求。这一形态下的 ZVM 是典型的嵌入式 Type 1 Hypervisor。
- 用于功能验证与开源协作的 ZVM 开源版本:以完整 Zephyr RTOS 为基础运行于 QEMU 等环境中,未对 Zephyr 宿主系统进行裁剪,以便于功能验证、桌面环境调试以及后续向 Zephyr 主线合并,这属于典型的Type 2 Hypervisor。
综上,ZVM 在架构本质上始终为 Type 1 Hypervisor,所谓 “Type 1.5” 的说法,仅用于描述其在工程实现与使用方式上的灵活性,而非对其架构层级的重新分类。
扫码查看视频介绍
小红书视频
微信视频号/公众号