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, 可视化界面, 网络流量审计, 虚拟化, 通知系统