vadika/ignition
GitHub: vadika/ignition
一款基于 Apple Hypervisor.framework 构建的 Apple Silicon 原生研究型 microVM,参考 AWS Firecracker 设计理念,支持在 macOS 上轻量启动 Linux 并提供快照、差异快照等虚拟化能力。
Stars: 8 | Forks: 0
# ignition
一款专为 **Apple Silicon 上的 macOS** 打造的研究型 microVM,基于 Apple 的
**Hypervisor.framework (HVF)** 构建。架构上参考了 AWS Firecracker(包括 microVM 模型、vstate 边界、设备集),但并非移植:它与 Firecracker 共享的源代码行数为 0。其传承的是*设计*,以及 Firecracker 同样采用的 rust-vmm 构建基础组件(`vm-superio`、`vm-fdt`)。HVF 后端(即 `ignition-hvf` crate)源自 [libkrun](https://github.com/containers/libkrun) (Apache-2.0)
并在此处经过了大幅重构;其余所有内容均为原创。
## 快速开始
```
cargo build -p ignition-spike --bin boot
scripts/sign.sh target/debug/boot
target/debug/boot kimage/out/Image kimage/out/rootfs.ext4
```
需要 Apple Silicon Mac、macOS 15+(首选 26)、Rust 1.96+(edition 2024)。有关
其他所有内容(客户机资产、快照/恢复、差异快照、模糊测试、基准测试)的详细信息,请参阅文档。
## 状态
已在 Apple Silicon 上完成端到端验证。目前已支持的功能:
- **启动至 shell** — aarch64 kernel + FDT 加载,内核态 GICv3,交互式 16550 控制台。
- **设备模型** — 统一的 `DeviceManager` + `MmioDevice` trait;完整的 Firecracker aarch64 设备集。
- **virtio** — blk, net (vmnet NAT, `--net`), rng, balloon, vsock (客户机→宿主机)。
- **PL031 RTC + boot-timer。**
- **SMP** — 通过 PSCI `CPU_ON` 支持多 vCPU (`--smp N`)。
- **快照 / 恢复** — 具备克隆能力,支持延迟 `clonefile` + `MAP_SHARED`,兼容多 vCPU + 网络。
- **差异快照** — `--track-dirty` 写保护追踪;不可变的增量链。
- **VMM 内快照模糊测试** — `--fuzz` 每次迭代的脏页重置循环。
完整功能文档:文档站点。路线图与进展:`ROADMAP.md`。
## 布局
```
crates/
arch/ ignition-arch (lib ignition_arch) — aarch64 sysreg tables, FDT, boot regs
hvf/ ignition-hvf (lib ignition_hvf) — Hypervisor.framework backend
devices/ ignition-devices (lib ignition_devices) — serial, virtio, GIC, fuzz device
vmm/ ignition-vmm (lib ignition_vmm) — vstate seam (HVF in place of FC kvm/vm/vcpu)
spike/ ignition-spike — the `boot` binary (interactive microVM)
docs/ mdBook documentation (src/) + agentic specs/plans (superpowers/)
examples/ runnable walkthroughs (diff-snapshot fan-out, fuzzing demo)
scripts/ sign.sh and the benchmark/gate drivers
refs/ reference VMM clones (gitignored, reference only)
```
标签:Apple Silicon, AWS Firecracker, Hypervisor.framework, microVM, Rust, 可视化界面, 网络流量审计, 虚拟化, 通知系统