AxVisor 发布规划
概述
AxVisor 被设计为一个基于 ArceOS 框架实现的 Type I 类型的 Hypervisor。其目标是利用 ArceOS 提供的基础操作系统功能作为基础实现一个统一的组件化 Hypervisor。
发布规划
AxVisor 项目自启动以来,经历了从概念验证到功能完善的发展过程。目前项目正处于快速迭代阶段,逐步增加新功能和改进现有功能,因此,在 v0.1 版本之前,文档,功能等都可能会很快过时,但随着第一个版本的发布,相关内容将逐步稳定。
硬件平台
目前,正在不断扩展及完善硬件平台支持。下面每个章节以表格的形式列出了版本与平台之间的关系,以 ● 表示支持,○ 表示不支持,☉ 部分支持,各个版本之间的 ○ ➜ ☉ ➜ ● 变化表示到对应的版本才会提供对应的支持。
架构支持
AxVisor 采用分层架构设计,支持多种处理器架构,为不同硬件平台提供统一的虚拟化解决方案。AxVisor 被设计为可以在 x86_64、AArch64、RISC-V、LoongArch 四大芯片架构上运行,目前已经在多种平台上进行了验证,但是架构支持并不完善。
| 架构 | x86_64 | AArch64 | RISC-V | LoongArch |
|---|---|---|---|---|
| 当前 | ☉ | ● | ○ | ○ |
| v0.1 | ☉ | ● | ○ | ○ |
| v0.2 | ● | ● | ● | ● |
注:● 表示支持,○ 表示不支持,☉ 部分支持
开发板支持
AxVisor 支持多种硬件开发板,从虚拟化环境到真实硬件平台,为不同应用场景提供灵活的部署选择。目前,AxVisor 已经在QEMU ARM64、Rockchip RK3568 / RK3588、飞腾派等平台进行了验证。
| 功能点 | QEMU AArch64 | QEMU x86_64 | QEMU RISC-V | QEMU LoongArch | 飞腾派 | ROC-RK3568-PC | 道莅 PLC | 更多设备 |
|---|---|---|---|---|---|---|---|---|
| 当前 | ● | ☉ | ○ | ○ | ● | ● | ☉ | ○ |
| v0.1 | ● | ☉ | ○ | ○ | ● | ● | ● | ○ |
| v0.2 | ● | ● | ● | ● | ● | ● | ● | ○ |
注:● 表示支持,○ 表示不支持,☉ 部分支持
软件平台
目前,正在不断扩展及完善软件平台支持。下面每个章节以表格的形式列出了版本与软件之间的关系,以 ● 表示支持,○ 表示不支持,☉ 部分支持,各个版本之间的 ○ ➜ ☉ ➜ ● 变化表示到对应的版本才会提供对应的支持。
客户机系统
AxVisor 支持多种客户机操作系统,从轻量级实时操作系统到通用操作系统,满足不同应用场景的需求。目前,AxVisor 已经在 ArceOS、NimbOS、Linux 等系统作为客户机的情况进行了验证,但是仍需完善支持情况,以及扩展更多客户机支持。
| 客户机 | ArceOS | Linux | Starry-OS | NimbOS | RTThread | 其他系统 |
|---|---|---|---|---|---|---|
| 当前 | ● | ☉ | ○ | ☉ | ○ | ○ |
| v0.1 | ● | ☉ | ○ | ☉ | ● | ○ |
| v0.2 | ● | ● | ● | ● | ● | ○ |
注:● 表示支持,○ 表示不支持,☉ 部分支持
核心功能
AxVisor 提供了丰富的虚拟化功能,从基础的内存管理到高级的设备模拟,为不同应用场景提供全面的虚拟化解决方案。目前,AxVisor 的内存管理、CPU 调度、设备模拟、中断处理等核心功能正在逐步完善中。
内存管理
| 功能点 | 简单 EPT/Stage-2 页表 | 多级 EPT/Stage-2 页表 | 基础内存分配 | 高级内存分配策略 | 内存共享机制 |
|---|---|---|---|---|---|
| 当前 | ● | ○ | ● | ○ | ○ |
| v0.1 | ● | ○ | ● | ○ | ☉ |
| v0.2 | ● | ● | ● | ● | ● |
注:● 表示支持,○ 表示不支持,☉ 部分支持
CPU 调度
| 功能点 | 单 vCPU | 多 vCPU | 简单 CPU 分配 | CPU 亲和性控制 | 基础调度策略 | 高级调度策略 | 负载均衡 |
|---|---|---|---|---|---|---|---|
| 当前 | ● | ● | ● | ○ | ● | ○ | ○ |
| v0.1 | ● | ● | ● | ○ | ● | ○ | ○ |
| v0.2 | ● | ● | ● | ● | ● | ● | ● |
注:● 表示支持,○ 表示不支持,☉ 部分支持
设备模拟
| 功能点 | 设备直通 | 串口设备模拟 | 简单块设备模拟 | 完整网络设备模拟 | 高级存储设备模拟 | 设备热插拔支持 |
|---|---|---|---|---|---|---|
| 当前 | ● | ○ | ○ | ○ | ○ | ○ |
| v0.1 | ● | ○ | ○ | ○ | ○ | ○ |
| v0.2 | ● | ● | ● | ● | ● | ● |
注:● 表示支持,○ 表示不支持,☉ 部分支持
中断处理
| 功能点 | 简单中断注入 | 高级中断注入机制 | 基础中断路由 | 复杂中断路由 | 中断优先级管理 | MSI 中断支持 |
|---|---|---|---|---|---|---|
| 当前 | ● | ○ | ● | ○ | ○ | ○ |
| v0.1 | ● | ○ | ● | ○ | ○ | ○ |
| v0.2 | ● | ● | ● | ● | ● | ● |
注:● 表示支持,○ 表示不支持,☉ 部分支持
客户机管理
| 功能点 | 客户机配置管理 | 客户机之间通信 | 虚拟机快照 | 实时迁移 | 性能监控 |
|---|---|---|---|---|---|
| 当前 | ☉ | ○ | ○ | ○ | ○ |
| v0.1 | ● | ○ | ○ | ○ | ○ |
| v0.2 | ● | ● | ● | ● | ○ |
注:● 表示支持,○ 表示不支持,☉ 部分支持
其他功能
| 功能点 | 基础设备树处理 | 完善的设备树处理 | 基础文件系统支持 | 完整文件系统支持 | 升级 |
|---|---|---|---|---|---|
| 当前 | ● | ○ | ● | ○ | ○ |
| v0.1 | ● | ○ | ● | ○ | ○ |
| v0.2 | ● | ● | ● | ● | ● |
注:● 表示支持,○ 表示不支持,☉ 部分支持
总结
AxVisor 作为一个新兴的 Hypervisor 项目,已经从一个概念验证项目发展成为一个功能相对完整的虚拟化解决方案。然而仍旧需要进一步完善。
架构改进
目前,AxVisor 严重依赖于 ArceOS,而目前的 ArceOS 发展缓慢,其会逐渐制约 AxVisor 的发展。但是,无论是 ArceOS 还是 AxVisor,都被设计为组件化内核,因此,AxVisor 和 ArceOS 都应该是组件化的展示,而不应该有相互依赖。
-
将 AxVisor 完全脱离 ArceOS,转而直接使用已经开发的各个组件
-
调整架构层级设计,方便引入各种组件
-
统一组件的标准,合并或者差分现有组件,避免过渡碎片化
功能扩展
基于当前的发展趋势,AxVisor的未来发展方向可能包括:
-
更多架构支持:继续扩展对更多处理器架构的支持
-
增强的虚拟化功能:包括更高级的设备模拟、更完善的内存管理
-
性能优化:提高虚拟化性能,减少性能开销
-
云原生支持:增加对容器和微服务的支持
-
安全性增强:提高虚拟化环境的安全性