NVX 中文文档
NVX 是什么
NVX 是一个超轻量级微虚拟机沙箱,用硬件强制隔离来运行不受信任的工作负载。它构建在 OpenVMM 之上,客户机运行 Linux;同一套 NVX 内核可以启动 Alpine、Ubuntu 或 Azure Linux 用户态。
NVX 不是通用虚拟机管理器。它把“一台微虚拟机”收敛成“一个隔离的工作负载”:启动路径短、 状态面小、默认网络封闭,客户机里的工作负载通过一条经过认证的控制台与宿主通信。宿主侧 既可以用 python3 scripts/nvx.py 驱动,也可以直接使用 Rust crateaci_edge_sandboxes。
隔离边界
KVM、MSHV 或 WHP 提供的硬件虚拟化,而不是容器命名空间。
启动目标
直接内核启动,客户机就绪后立即进入受监管的工作负载。
默认策略
出站流量默认拒绝,按需加入规则;宿主回环访问显式开启。
交付形态
预构建发布包、源码构建,以及不依赖 Python 运行时的 Rust API。
五分钟启动
需要 Python 3.10 或更新版本。下面的命令会从当前检出版本对应的发布版下载预构建 NVX 包;如果该版本没有可用发布包,则从最近的已发布祖先版本获取。成功启动后会打印NVX-GUEST-BOOT-OK: alpine,并打开一个 root shell。
$ git clone https://github.com/microsoft/nvx.git && cd nvx
$ python3 scripts/nvx.py download
$ python3 scripts/nvx.py run
NVX-GUEST-BOOT-OK: alpine
root@nvx:~# _启动其他用户态,或换用其他 hypervisor:
$ python3 scripts/nvx.py run --guest ubuntu
$ python3 scripts/nvx.py run --guest azurelinux
$ python3 scripts/nvx.py download --hypervisor mshv
$ python3 scripts/nvx.py run --hypervisor mshv客户机内用 /sbin/nvx-exit 0 正常退出。更细的环境要求见环境准备,运行选项见 运行, 完整命令面见 命令行参考。
文档怎么读
左侧目录按“使用、开发、客户机”分组。第一次接触 NVX,按下面的顺序读最省时间;已经熟悉 项目的话,可以直接跳到命令行参考或 Rust API。其中架构设计是一套完整的中文架构手册,31 篇章节按信任边界、虚拟机架构、虚拟设备、客户机运行时与生命周期五条主线展开。
上游与译文
本中文站是非官方翻译,覆盖 microsoft/nvx 仓库 dev 分支的 16 份主文档、doc/design 下的 31 篇架构章节,以及宿主准备脚本与安全策略,共 49 篇。代码、命令、选项和 API 名称保持英文原样;遇到与上游不一致的地方,以上游文档 为准。
译文会随上游更新而调整。发现术语、链接或命令问题,可以在microsoft/nvx 反馈上游问题,或在本站仓库提交翻译修正。