做 CI/CD 或者跑微服务的时候,你大概率用过 QEMU。但它太重了——启动十几秒起步,资源吃不少,有时只想跑个简单的环境测试一下,也得等半天。
Smolvm 是 Rust 写的轻量级虚拟机,Apache-2.0 开源,GitHub 上刚发布就冲了 3.5k+ stars,Hacker News 拿了 499 points。冷启动不到 200ms,镜像体积才 128MB 左右,二进制压缩后也就 30MB——跟 QEMU 比完全不是一个量级。
简单说就是一个「亚秒级启动」的 VM,适合开发者做 CI/CD、边缘计算、沙箱隔离这些场景。

是什么
Smolvm 是一套 CLI 工具,用 Rust 写的 VMM(虚拟化监视器)。它不跑完整的操作系统,而是用 libkrun 作为底层虚拟化库,配合精简内核,让你能以极快速度启动微型虚拟机。
冷启动 < 200ms —— 从执行命令到 VM 就绪不到一秒。对比 QEMU 的 15-30 秒,体验差距巨大。
128MB 镜像 —— 基于 Alpine Linux 极简镜像,整个 VM 镜像轻到可以塞进内存。二进制压缩后 ~30MB。
跨平台 —— macOS 用 Hypervisor.framework,Linux 用 KVM。同一套 .smolmachine 映像文件跨平台运行。
库式架构 —— 不像 QEMU 是一个庞大的守护进程,Smolvm 的运行时通过库直接链接,不需要 daemon 在后台跑着。
弹性内存 —— VM 只用它实际需要的内存,不是 QEMU 那样一次性分配固定大小。
核心优势:为什么说甩开 QEMU
启动速度是根本差距。 QEMU 每次启动要加载 BIOS、内核、驱动、初始化整个系统,15 秒都是快的。Smolvm 用 libkrun 的精简内核 + 直接 KVM 接入,200ms 内 VM 就能用。这在 CI/CD 场景下是颠覆性的——每次构建不再浪费几十秒等虚拟机启动。
资源占用不是一个量级。 QEMU 跑一个最小 Linux 镜像大概要 256MB+ 内存,磁盘占用更大。Smolvm 的 Alpine 基础镜像 128MB,按需分配内存,跑起来更省。
开箱即用的可移植性。 .smolmachine 格式打包了完整的 VM 配置 + 磁盘镜像。你在 macOS 上打包的镜像可以直接扔到 Linux 服务器上跑,不用调任何参数。QEMU 的跨平台兼容靠各种命令行参数来调,不同平台命令行都不一样。
CLI 体验现代化。 一条命令启动 VM,不用记一堆 -m、-smp、-drive、-netdev 参数。smolvm run 就完事。
安装使用
安装很简单:
brew install smol-machines/tap/smolvm # macOS
cargo install smolvm # 任意平台
启动一个 VM:
smolvm init --name my-vm # 初始化
smolvm run my-vm # 启动
想快速测试:
smolvm run alpine:latest # 直接拉镜像跑
不到一秒 VM 就跑起来了。
不是没有槽点
项目太新。 Smolvm 出来才半年左右,v1.0.1 就是昨天发的。API 稳定性、社区生态都还在早期阶段。你敢在生产环境大规模上用吗?目前不太敢。
网络功能有限。 目前只支持 TCP/UDP 转发,ICMP(ping)不支持。如果你需要完整的网络栈模拟,QEMU 还是更成熟。
macOS 需要签名。 因为用了 Hypervisor.framework,macOS 上需要先签名才能跑。多了一步配置步骤。
GLIBC 兼容问题。 基于 Alpine 的镜像用 musl libc,有些依赖 GLIBC 的二进制跑不了。得自己额外处理。
没有 QEMU 的生态。 QEMU 二十年的积累,支持几乎所有架构、外设、网络模型。Smolvm 目前只针对 x86_64 和 aarch64。功能丰富度远不如。
跟同类怎么比
vs QEMU: QEMU 是瑞士军刀,什么都支持但重。Smolvm 是手术刀,轻快但功能有限。需要完整系统模拟 → QEMU。需要快速启动微 VM 做 CI/CD → Smolvm。
vs Firecracker(AWS): Firecracker 也是轻量微 VM,但主要用于 AWS Lambda/Fargate 这种大规模多租户场景。Smolvm 更面向个人开发者和本地开发场景,CLI 更友好。
一句话: Smolvm 不是为了取代 QEMU,而是填补 QEMU 太重的那部分场景。如果你经常因为等虚拟机启动而烦躁,Smolvm 会很对你胃口。
GitHub:https://github.com/smol-machines/smolvm
官方网站:https://smolvm.dev
标签:#Smolvm #轻量虚拟机 #Rust #QEMU #CI/CD #微VM #开发者工具 #开源