Add introduction and design diagram
[ikiwiki.git] / docs / docs / howtos / nvmm / index.mdwn
1 [[!meta title="Virtualization: NVMM Hypervisor"]]
2
3 **Table of Contents:**
4
5 [[!toc startlevel=2]]
6
7 ## Introduction
8
9 NVMM is a Type-2 hypervisor, and hypervisor platform, that provides support for hardware-accelerated virtualization.
10 A virtualization API is shipped in libnvmm(3), and allows existing emulators (e.g., QEMU) to easily create and manage virtual machines via NVMM.
11
12 NVMM can support up to 128 virtual machines, each having a maximum of 128 vCPUs and 127TB RAM.
13 It works with both x86 AMD CPUs (SVM/AMD-V) and x86 Intel CPUs (VMX/VT-x).
14
15 NVMM was designed and written by Maxime Villard (m00nbsd.net), first appeared in NetBSD 9, and was ported to DragonFly 6.1 by Aaron LI (aly@).
16
17 ## Design
18
19 NVMM has unique design properties, not currently found in other hypervisor solutions.
20
21 [[!img NvmmDesign.png alt="NVMM Design" size=400x]]
22 <br>
23 (Credit: https://m00nbsd.net/NvmmDesign.png)
24
25 ## Usage
26
27 xxx
28
29 ## Resources
30
31 * NVMM kernel code: [machine-independent frontend](https://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/sys/dev/virtual/nvmm), [machine-dependent x86 backends](https://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/sys/dev/virtual/nvmm/x86)
32 * [libnvmm API code](https://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/lib/libnvmm)
33 * [libnvmm test cases](https://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/test/testcases/libnvmm)
34 * [nvmmctl utility code](https://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/usr.sbin/nvmmctl)
35 * Examples: [calc-vm](https://gitweb.dragonflybsd.org/dragonfly.git/blob/HEAD:/test/nvmm/calc-vm.c), [demo](https://gitweb.dragonflybsd.org/dragonfly.git/blob/HEAD:/test/nvmm/deomo)
36 * [nvmm(4) man page](https://man.dragonflybsd.org/?command=nvmm&section=4)
37 * [libnvmm(3) man page](https://man.dragonflybsd.org/?command=libnvmm&section=3)
38 * [nvmmctl(8) man page](https://man.dragonflybsd.org/?command=nvmmctl&section=8)
39
40 ## References
41
42 * [m00nbsd: NVMM](https://m00nbsd.net/4e0798b7f2620c965d0dd9d6a7a2f296.html)
43 * [NetBSD: From Zero to NVMM](https://blog.netbsd.org/tnf/entry/from_zero_to_nvmm)
44 * [NetBSD: Chapter 30. Using virtualization: QEMU and NVMM](https://netbsd.org/docs/guide/en/chap-virt.html)