NVX is an ultra-light micro-VM sandbox for running untrusted workloads with hardware-enforced isolation. It is built on top of OpenVMM and runs Linux as a guest.
NVX was jointly developed by the MSR Systems Research Group and Azure Research - Systems, building on research results from the Nanvix system.
This repository includes version pins for Linux and OpenVMM, along with the patches, guest source files, build tools, and benchmarks needed to use NVX.
Python 3.10 or newer is required. The commands below download the latest NVX release for the
selected platform, so no local build is required. A successful boot prints
ALPINE-MICROVM-BOOT-OK and opens a root shell.
Exit cleanly from the guest with /sbin/nvx-exit 0. See the setup and
run guides for detailed prerequisites and runtime options.
ℹ️ For direct OpenVMM integration without the
scripts/nvx.pyruntime harness, see Run OpenVMM directly.
Requires KVM configured with read/write access to /dev/kvm.
git clone https://github.com/microsoft/nvx.git && cd nvx
python3 scripts/nvx.py download
python3 scripts/nvx.py runRequires MSHV configured with read/write access to /dev/mshv.
git clone https://github.com/microsoft/nvx.git && cd nvx
python3 scripts/nvx.py download --hypervisor mshv
python3 scripts/nvx.py run --hypervisor mshvRequires Windows Hypervisor Platform enabled.
git clone https://github.com/microsoft/nvx.git; Set-Location nvx
python scripts\nvx.py download
python scripts\nvx.py run- Setup - Instructions for setting up your environment.
- Build - Instructions for building NVX.
- Run - Instructions for running NVX.
- Benchmark - Instructions for benchmarking NVX.
- Command-line reference - Complete
scripts/nvx.pycommand and option reference.
- Design - Current microVM architecture and ABI.
- Project structure - Overview of the NVX repository layout.
- Continuous integration - Instructions for running and maintaining NVX CI.
- Package and source delivery - Instructions for packaging and distributing NVX.
- Contributing - Guidelines for contributing to NVX.