version 1.3, 2018/05/27 09:53:16
|
version 1.4, 2019/01/30 02:07:44
|
Line 91 membarrier | membarrier system call
|
Line 91 membarrier | membarrier system call
|
fdt | fdt device tree | unknown, should work |
fdt | fdt device tree | unknown, should work |
bluez | bluez stack connectivity | unknown |
bluez | bluez stack connectivity | unknown |
kvm | KVM acceleration support | N/A , Linux specific kernel APIs required in userland |
kvm | KVM acceleration support | N/A , Linux specific kernel APIs required in userland |
hax | HAX acceleration support | not ported, Windows/Darwin specific as of today |
hax | HAX acceleration support | mostly works, patches pending |
hvf | Hypervisor.framework acceleration support | not ported, Darwin specific |
hvf | Hypervisor.framework acceleration support | not ported, Darwin specific |
whpx | Windows Hypervisor Platform acceleration support | N/A |
whpx | Windows Hypervisor Platform acceleration support | N/A |
rdma | Enable RDMA-based migration and PVRDMA support | unknown, probably not supported |
rdma | Enable RDMA-based migration and PVRDMA support | unknown, probably not supported |
Line 162 capstone | capstone disassembler s
|
Line 162 capstone | capstone disassembler s
|
2. Make QEMU PaX MPROTECT safe. |
2. Make QEMU PaX MPROTECT safe. |
|
|
3. Develop NetBSD USER emulation, attempt to either share the code with FreeBSD (bsd-user, old broken, downstream patches) or with Linux (linux-user, recent, actively maintained). Preferred approach is to share as much code with linux-user as possible, regardless of the state of bsd-user. |
3. Develop NetBSD USER emulation, attempt to either share the code with FreeBSD (bsd-user, old broken, downstream patches) or with Linux (linux-user, recent, actively maintained). Preferred approach is to share as much code with linux-user as possible, regardless of the state of bsd-user. |
|
|
4. Develop HAXM backend support for the NetBSD kernel. |
|
|
|
## HAXM hardware assisted virtualization |
|
|
|
Features: |
|
|
|
- Open Source |
|
- HAXM is an Intel hardware assisted virtualization. |
|
- HAXM supports up to 8 active VMs. |
|
- HAXM supports up to 16 active VCPUs per VM. |
|
- ioctl(2) based API with statically created devices (/dev/HAX, /dev/haxm_vm/vmXX, /dev/haxm_vm/haxm_vmXX_vcpuYY) |
|
|
|
HAXM porting for NetBSD rationale: |
|
|
|
- Relatively low cost (compared to alternatives) to get it aboard to the NetBSD kernel. |
|
- Relatively non-intrusive (compared to alternatives like bhyve and KVM) |
|
- Scratch but non-functional port for NetBSD is ready. |
|
- Active (paid developers) upstream to maintain this |
|
- Clean separation between kernel specific and independent parts (there are at least 2 backends: Darwin and Windows) |
|
- QEMU frontend already exists, API is ioctl(2) based |
|
- Good license (BSD-3-clause) for the kernel driver |
|
- Tailored down for desktop users, initially prepared for Android developers |
|
|
|
HAXM shortcomings: |
|
|
|
- No AMD support |
|
- Required relatively recent Intel CPU |
|
- Not as flexible as KVM-like solutions for embedded or server usage |
|
- Not necessarily ready (not tested) to run every OS in existence, there are known failures to execute some versions of the Linux kernel |
|
|
|
Current HAXM/NetBSD status: |
|
|
|
- The module builds and loads into the kernel (triggering a panic) |
|
- Revisit the UVM APIs to ship all the needed features of sharing memory between user and kernel that is used by HAXM |
|
|
|
> https://github.com/krytarowski/haxm/tree/netbsd-1 |
|
> |
|
> $ cd netbsd && make |
|
|
|
External links: |
|
|
|
[https://www.qemu.org/2017/11/22/haxm-usage-windows/](https://www.qemu.org/2017/11/22/haxm-usage-windows/) |
|
|
|
[https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm](https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm) |
|
|
|
[https://github.com/intel/haxm](https://github.com/intel/haxm) |
|