首页CLIsmol-machines/smolvm
smol-machines

smolvm

InfraVirtualizationMicroVMLinuxCLIOCI
总收藏数179
GitHub 上查看完整项目前往 GitHub

项目简介

smolvm 是一款旨在管理和运行自定义 Linux 虚拟机的 CLI 工具,具备亚秒级冷启动和弹性内存使用能力。它为工作负载提供硬件级隔离,同时允许用户将有状态的机器打包成可移植文件以实现跨平台执行。该工具支持 OCI 兼容镜像,并提供 SSH agent forwarding 和可复现环境配置等高级功能。

技术分析

smolvm 是一个 CLI 工具,旨在提供具有亚秒级启动时间和弹性内存管理的硬件隔离 Linux 虚拟机。通过利用 libkrun 以及 macOS 上的 Hypervisor.framework 和 Linux 上的 KVM 等原生 hypervisor,它在保持强大安全边界的同时,为传统容器运行时提供了一种轻量级的替代方案。该项目优先考虑可移植性和开发人员体验,允许用户将有状态环境打包成单文件制品,并在不同宿主平台上一致地运行,而无需后台守护进程。

核心亮点

1
利用专门的基于 hypervisor 的架构,实现亚秒级冷启动和 <200ms 的启动时间。
2
为不受信任的代码提供硬件级隔离,通过 hypervisor 边界确保宿主文件系统和凭据保持受保护状态。
3
支持 OCI 兼容镜像,允许用户从镜像仓库拉取并运行标准容器镜像,而无需 Docker 守护进程。
4
支持创建可移植的、自包含的 .smolmachine 二进制文件,其中包含所有依赖项,以确保在不同环境中一致执行。
5
通过 virtio ballooning 实现弹性内存使用,确保宿主机仅消耗客户机 VM 实际使用的资源。
6
支持安全的 SSH agent forwarding,使 VM 能够使用宿主端的密钥进行 git 操作,而无需将私钥暴露给客户机环境。

典型使用场景

1
利用硬件级隔离对不受信任的代码进行沙盒处理
2
将工作负载打包成可移植的自包含可执行文件
3
通过可复现的配置管理持久化开发环境

快速开始

首先,使用提供的 curl 脚本在 macOS 或 Linux 上安装该工具,或者从 GitHub releases 页面下载二进制文件。安装完成后,您可以使用 'smolvm machine run' 命令运行临时工作负载,或使用 'Smolfile' 配置文件定义持久化环境。使用 'smolvm --help' 探索完整的命令集并管理您的虚拟机。

相关项目