179
// 项目简介
smolvm 是一款旨在管理和运行自定义 Linux 虚拟机的 CLI 工具,具备亚秒级冷启动和弹性内存使用能力。它为工作负载提供硬件级隔离,同时允许用户将有状态的机器打包成可移植文件以实现跨平台执行。该工具支持 OCI 兼容镜像,并提供 SSH agent forwarding 和可复现环境配置等高级功能。
// 技术分析
smolvm 是一个 CLI 工具,旨在提供具有亚秒级启动时间和弹性内存管理的硬件隔离 Linux 虚拟机。通过利用 libkrun 以及 macOS 上的 Hypervisor.framework 和 Linux 上的 KVM 等原生 hypervisor,它在保持强大安全边界的同时,为传统容器运行时提供了一种轻量级的替代方案。该项目优先考虑可移植性和开发人员体验,允许用户将有状态环境打包成单文件制品,并在不同宿主平台上一致地运行,而无需后台守护进程。
// 核心亮点
01
利用专门的基于 hypervisor 的架构,实现亚秒级冷启动和 <200ms 的启动时间。
02
为不受信任的代码提供硬件级隔离,通过 hypervisor 边界确保宿主文件系统和凭据保持受保护状态。
03
支持 OCI 兼容镜像,允许用户从镜像仓库拉取并运行标准容器镜像,而无需 Docker 守护进程。
04
支持创建可移植的、自包含的 .smolmachine 二进制文件,其中包含所有依赖项,以确保在不同环境中一致执行。
05
通过 virtio ballooning 实现弹性内存使用,确保宿主机仅消耗客户机 VM 实际使用的资源。
06
支持安全的 SSH agent forwarding,使 VM 能够使用宿主端的密钥进行 git 操作,而无需将私钥暴露给客户机环境。
// 典型使用场景
01
利用硬件级隔离对不受信任的代码进行沙盒处理
02
将工作负载打包成可移植的自包含可执行文件
03
通过可复现的配置管理持久化开发环境
// 快速开始
首先,使用提供的 curl 脚本在 macOS 或 Linux 上安装该工具,或者从 GitHub releases 页面下载二进制文件。安装完成后,您可以使用 'smolvm machine run' 命令运行临时工作负载,或使用 'Smolfile' 配置文件定义持久化环境。使用 'smolvm --help' 探索完整的命令集并管理您的虚拟机。