Hacker News 中文摘要

RSS订阅

显示HN:Smol机器——亚秒级冷启动,便携式虚拟机 -- Show HN: Smol machines – subsecond coldstart, portable virtual machines

文章摘要

smolvm是一个用于构建和运行轻量级、便携式、自包含虚拟机的工具。该项目托管在GitHub上,属于smol-machines组织,旨在简化虚拟机的创建和使用过程。

文章总结

GitHub项目:smol-machines/smolvm

轻量级自包含虚拟机工具

核心功能

  1. 构建与运行

    • 创建便携、轻量级、自包含的Linux虚拟机(.smolmachine文件)
    • 支持跨平台运行(macOS、Linux)
    • 冷启动时间<200ms,弹性内存管理(默认4vCPU/8GiB)
  2. 关键特性

    • 沙箱隔离:默认无网络访问,需显式启用--net,支持白名单(--allow-host
    • SSH代理转发:安全使用主机密钥(--ssh-agent
    • 持久化虚拟机:支持创建/启动/停止命名实例(如smolvm machine create myvm
    • 声明式配置:通过Smolfile定义环境(镜像、网络、挂载卷等)
  3. 应用场景

    • 运行非信任代码(硬件级隔离)
    • 打包便携二进制(如Python环境:smolvm pack create --image python:3.12-alpine
    • 开发环境管理(持久化安装包)

技术栈

  • 底层虚拟化:macOS(Hypervisor.framework)或Linux(KVM)
  • 核心组件:基于libkrun和定制内核libkrunfw
  • 内存管理:virtio气球驱动动态调整内存占用

快速开始

```bash

安装

curl -sSL https://smolmachines.com/install.sh | bash

运行临时虚拟机

smolvm machine run --net --image alpine -- sh -c "echo 'Hello from VM'"

交互式Shell

smolvm machine run -it --image alpine -- /bin/sh ```

平台支持

| 主机系统 | 客户机架构 | 要求 | |----------------|------------|--------------------------| | macOS (ARM/Intel) | arm64/x8664 Linux | macOS 11+ | | Linux (x8664/aarch64) | 同架构Linux | 需KVM权限(/dev/kvm)|

限制

  • 仅支持目录挂载(非单文件)
  • 网络需手动开启(无ICMP支持)
  • macOS需签名授权(Hypervisor.framework)

开源协议

Apache-2.0 License
项目主页:smolmachines.com
GitHub地址:smol-machines/smolvm

(注:原文中GitHub导航菜单、文件列表等非核心内容已精简)

评论总结

以下是评论内容的总结:

支持观点

  1. 创新性与性能

    • 认为该项目结合了容器和Firecracker的优点,具有创新性,尤其赞赏其亚秒级启动时间。
      • "its a really innovative idea! very interested in the subsecond coldstart claim"(harshdoesdev)
      • "Great job with the comparison table... This looks really cool"(cr125rider)
  2. 实用性与开发体验

    • 用户反馈其易用性和团队响应速度,认为适合实际应用场景。
      • "The dev ergonomics are also great"(isterin)
      • "smolvm is awesome. The team is highly responsive"(akoenig)
  3. 简化部署

    • 赞赏其自包含二进制文件功能,认为比GraalVM Native更简单。
      • "a potentially simpler way to package JVM apps than GraalVM Native"(gavinray)

质疑与批评

  1. 功能限制

    • 指出不支持Docker和嵌套虚拟化,可能影响兼容性。
      • "Smol machines do not support Docker inside the microvms... a big drawback"(lambdanodecore)
  2. 与现有技术重复

    • 质疑是否与Docker sbx或Shellbox等现有方案功能重叠。
      • "Doesn't Docker's sbx do this?"(ukuina)
      • "shellbox.dev is a hosted version of something very similar"(messh)
  3. 技术细节不明确

    • 询问镜像来源、网络依赖等具体实现细节。
      • "Where is that image coming from? Does this have some built-in default registry?"(nonameiguess)
      • "why do you report that qemu is 15s(parasitid)

其他相关项目

  • 提及类似项目如SmolBSD和FreeBSD的Firecracker应用,供对比参考。
    • "See also SmolBSD -- similar idea, similar name"(cperciva)
    • "see too[0][1] for projects of a similar vein"*(bch)

总结:评论普遍认可项目的创新性和性能,但也提出功能限制、技术重复性和细节透明度等质疑,同时列举了相关竞品供比较。