从底层 hypervisor 接口到高层 GUI 管理,TenBox 提供一体化的 Linux 虚拟化体验
Windows 使用 Windows Hypervisor Platform(WHVP),macOS Apple Silicon 使用 Hypervisor Framework(HVF),充分利用硬件加速虚拟化能力。
基于 virtio-gpu 和 SPICE 协议实现 GPU 显示,支持可调整大小的显示窗口,在虚拟机内获得完整的图形界面体验。
virtio-snd 音频流通过 Windows 的 WASAPI 和 macOS 的 CoreAudio 传输到宿主机,虚拟机音频无缝播放。
通过 virtiofs(virtio-fs)实现宿主机与虚拟机的目录共享,支持只读模式。SPICE vdagent 协议实现双向剪贴板同步。
同时支持 qcow2 和 raw 格式磁盘镜像,qcow2 支持 zlib 和 zstd 压缩簇,以及写时复制(copy-on-write)功能。
内置 DHCP 服务器,基于 lwIP 的 TCP/UDP NAT 代理,支持 ICMP 中继。可将虚拟机 TCP 服务暴露到宿主机端口,灵活配置端口转发。
实现完整的 VirtIO MMIO 设备栈:block、network、GPU、input、serial、sound 和 filesystem,满足 Linux 客户机的各类 I/O 需求。
Windows 采用 Win32 原生 GUI 管理器,macOS 采用 SwiftUI/AppKit 管理器,提供创建、编辑、启动、停止、重启和删除虚拟机的完整图形界面。
集成 qemu-guest-agent 协议处理器,实现虚拟机生命周期管理,支持从宿主机安全地控制和监控客户机系统状态。
TenBox 采用双进程设计:管理进程负责 UI 展示,为每个虚拟机单独启动一个运行时进程。两者通过平台专属 IPC 通道通信,实现进程隔离和稳定性保障。
持有 UI 界面,管理虚拟机列表,处理剪贴板、音频、共享文件夹和系统更新
Windows 使用 Named Pipe,macOS 使用 Unix Domain Socket 进行跨进程通信
运行 hypervisor 后端、客户机机器模型、VirtIO 设备、网络栈,完全独立于管理进程
针对 Windows 和 macOS Apple Silicon 分别优化,充分发挥各平台的原生虚拟化能力
根据你的操作系统选择对应的构建方式
确保已启用 Windows Hypervisor Platform,并安装 Visual Studio 2022+(含 C++20 支持)和 CMake 3.21+。
# 启用 Windows Hypervisor Platform
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform
git clone https://github.com/78/tenbox.git
cd tenbox
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
构建产物在 build/ 目录:tenbox-manager.exe(GUI 管理器)和 tenbox-vm-runtime.exe(VM 运行时)
build/tenbox-manager.exe
需要 macOS 13+ 的 Apple Silicon 设备,安装 Xcode 15+(含 Swift 5.9+),CMake 3.21+,以及 Docker(用于构建客户机镜像)。
git clone https://github.com/78/tenbox.git
cd tenbox
./scripts/build-macos.sh --release
构建产物:TenBox.app、tenbox-vm-runtime 和更新包 TenBox_<version>_<arch>.zip
open build/TenBox.app
# 构建内核、initramfs 和含 Chromium 的根文件系统
./scripts/docker/build.sh x86_64 kernel
./scripts/docker/build.sh x86_64 initramfs
./scripts/docker/build.sh x86_64 rootfs-chromium
./scripts/docker/build.sh arm64 kernel
./scripts/docker/build.sh arm64 initramfs
./scripts/docker/build.sh arm64 rootfs-chromium
# 查看构建进度
./scripts/docker/build.sh x86_64 rootfs-chromium --status
# 列出所有构建步骤
./scripts/docker/build.sh x86_64 rootfs-chromium --list-steps
# 强制完整重新构建
./scripts/docker/build.sh x86_64 rootfs-chromium --force
运行时进程通常由管理器自动调用,也可手动直接运行
| 参数 | 说明 | 默认值 |
|---|---|---|
| --kernel <path> | Linux 内核镜像路径(vmlinuz 或 Image)必填 | — |
| --initrd <path> | initramfs 路径 | — |
| --disk <path> | raw 或 qcow2 格式磁盘镜像路径 | — |
| --cmdline <str> | 内核命令行参数 | — |
| --memory <MB> | 虚拟机内存大小(MB) | 256 |
| --cpus <N> | 虚拟 CPU 数量(最大 128) | 1 |
| --net | 启用 virtio-net NAT 网络 | 禁用 |
| --forward H:G | 将宿主机端口 H 转发到虚拟机端口 G(可重复使用) | — |
| --share TAG:PATH[:ro] | 通过 virtiofs 共享宿主机目录(可重复使用,支持 :ro 只读) | — |
| --interactive on|off | 启用串口控制台 I/O | on |
| --vm-id <id> | VM 实例标识符 | default |
| --control-endpoint | 管理器通信 IPC 端点(Windows: Named Pipe,macOS: Unix socket 路径) | — |
TenBox 内置基于 lwIP 的用户态 NAT 网络实现,无需宿主机 root 权限。虚拟机通过 DHCP 自动获取 IP,可访问外部网络并接收端口转发。
| 地址 | 角色 |
|---|---|
| 10.0.2.2 | 网关(宿主机) |
| 10.0.2.15 | 虚拟机 IP(DHCP 分配) |
| 8.8.8.8 | DNS 服务器 |
由 scripts 中的 make-rootfs-chromium.sh 脚本构建,基于 Debian Bookworm,预装常用工具
tenbox,普通用户 openclaw,密码同用户名tenbox-vm,可在构建时通过环境变量覆盖由构建系统自动拉取,无需手动安装