这个项目能做什么

Firecracker 是一种开源虚拟化技术,专为创建和管理安全的多租户容器及函数式服务而设计,采用无服务器运营模式。它运行在称为 microVM 的轻量级虚拟机中,旨在结合硬件虚拟化的安全性与隔离性,以及容器的速度与灵活性。 其核心组件是构建在 Linux 内核虚拟机(KVM)之上的虚拟机监视器(VMM)。其设计刻意保持极简:排除了不必要的设备和面向客户机功能,以减少内存占用和攻击面。项目称这能提高安全性、缩短启动时间并提升硬件利用率。Firecracker 由 Amazon Web Services 开发,用于支持 AWS Lambda 和 AWS Fargate 等服务,并以 Apache 2.0 许可证发布。它也已集成到 Kata Containers 和 Flintlock 等容器运行时中。 启动后,Firecracker 会向宿主机暴露一个以 OpenAPI 格式定义的 API 端点。通过该 API,用户可以配置 microVM 的 vCPU 数量(默认 1)和内存大小(默认 128 MiB),应用 CPU 模板,挂载网络接口,添加读写或只读的文件后端块设备,在客户机运行时触发块设备重新扫描,在启动前或启动后更换块设备的后端文件,为 virtio 设备配置速率限制器,设置日志和指标,添加 vsock、熵、pmem 设备,管理内存热插拔,以及(在开发者预览版中)热插拔或热拔 virtio PCI 设备。microVM 使用内核镜像、根文件系统和启动参数启动;仅 x86_64 架构支持停止操作。内置功能包括按需缺页分页、默认 CPU 超订、线程级 seccomp 过滤器,以及一个 Jailer 进程,用于在生产部署中应用 cgroup/命名空间隔离并丢弃特权。 可以通过下载发布二进制文件或从源码构建来开始使用。构建需要带有 Docker 和 bash 的 Unix/Linux 系统;项目提供了开发容器和 devtool 构建命令,二进制文件位于 build/cargo_target 下。文档涵盖快速入门指南、生产主机设置、设计、API 请求、CPU 模板、vsock、熵、pmem、内存热插拔、设备热插拔和 Jailer 用法。项目大约每两到三个月在 GitHub 发布一次新版本,附带变更日志和文档化的发布策略。 项目发布了一个经过测试的平台矩阵,涵盖 Intel、AMD 和 Graviton 系列的 AWS EC2 裸金属实例,以及各种宿主机内核、客户机根文件系统和客户机内核。一个已知限制是 aarch64 上的 pl031 RTC 设备不支持中断,因此依赖 RTC 闹钟(如 hwclock)的客户机程序将无法工作。性能特性记录在规范文件中,并通过持续集成测试强制执行。安全披露按照项目安全政策私下处理,社区联系可通过 Slack、GitHub issues 和邮件列表联系。