🏗️ 架构概述
Lima 采用分层架构,在 macOS 主机上运行 Linux 虚拟机:
┌─────────────────────────────────────────┐ │ macOS Host │ ├─────────────────────────────────────────┤ │ limactl CLI │ lima guestagent │ ├─────────────────────────────────────────┤ │ Hypervisor (QEMU/VZ) │ ├─────────────────────────────────────────┤ │ Linux Guest VM │ │ ┌─────────────────────────────────────┐│ │ │ containerd │ nerdctl │ Docker │ K8s ││ │ └─────────────────────────────────────┘│ └─────────────────────────────────────────┘
📦 核心组件
1. limactl(命令行工具)
- 管理 VM 生命周期(创建、启动、停止、删除)
- 管理模板和配置
- 执行命令进入 VM
2. Hypervisor(虚拟化层)
- QEMU - 通用虚拟机,跨平台支持
- Virtualization.framework (VZ) - Apple 原生虚拟化,性能更优
3. guestagent(客户机代理)
- 运行在 Linux VM 内
- 处理端口转发
- 处理文件共享
- 与主机通信
4. containerd + nerdctl
- containerd:容器运行时
- nerdctl:Docker 兼容 CLI
- BuildKit:镜像构建
📁 文件共享机制
- 9p (virtio-9p) - QEMU 文件共享协议
- virtiofs - 高性能文件系统
- sshfs - SSH 文件系统(备选)
🔧 技术栈
- Go - 主要开发语言
- QEMU - 虚拟机
- containerd - 容器运行时
- nerdctl - CLI 工具
- BuildKit - 镜像构建
- YAML - 模板配置