version 1.5, 2019/02/13 05:49:21
|
version 1.9, 2019/09/02 20:48:39
|
Line 141 capstone | capstone disassembler s
|
Line 141 capstone | capstone disassembler s
|
> HQEMU is a retargetable and multi-threaded dynamic binary translator on multicores. It integrates QEMU and LLVM as its building blocks. The translator in the enhanced QEMU acts as a fast translator with low translation overhead. The optimization-intensive LLVM optimizer running on separate threads dynamically improves code for higher performance. With the hybrid QEMU+LLVM approach, HQEMU can achieve low translation overhead and good translated code quality. |
> HQEMU is a retargetable and multi-threaded dynamic binary translator on multicores. It integrates QEMU and LLVM as its building blocks. The translator in the enhanced QEMU acts as a fast translator with low translation overhead. The optimization-intensive LLVM optimizer running on separate threads dynamically improves code for higher performance. With the hybrid QEMU+LLVM approach, HQEMU can achieve low translation overhead and good translated code quality. |
> HQEMU supports process-level emulation and full-system virtualization. It provides translation modes of running the QEMU translator and LLVM optimizer in one process, or running the LLVM optimizer as a stand-alone optimization server (version 0.13.0). |
> HQEMU supports process-level emulation and full-system virtualization. It provides translation modes of running the QEMU translator and LLVM optimizer in one process, or running the LLVM optimizer as a stand-alone optimization server (version 0.13.0). |
|
|
[http://itanium.iis.sinica.edu.tw/hqemu/](http://itanium.iis.sinica.edu.tw/hqemu/) |
<http://itanium.iis.sinica.edu.tw/hqemu/> |
|
|
2. DPDK |
2. DPDK |
|
|
> DPDK is a set of libraries and drivers for fast packet processing. |
> DPDK is a set of libraries and drivers for fast packet processing. |
|
|
[https://dpdk.org/](https://dpdk.org/) |
<https://dpdk.org/> |
|
|
3. The ultimate CPU emulator |
3. The ultimate CPU emulator |
|
|
> Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework. |
> Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework. |
|
|
[https://www.unicorn-engine.org/](https://www.unicorn-engine.org/) |
<https://www.unicorn-engine.org/> |
|
|
## Prioritized tasks |
## Prioritized tasks |
|
|
Line 172 capstone | capstone disassembler s
|
Line 172 capstone | capstone disassembler s
|
|
|
More information on the porting process is available on The NetBSD blog: |
More information on the porting process is available on The NetBSD blog: |
|
|
http://blog.netbsd.org/tnf/entry/the_hardware_assisted_virtualization_challenge |
<http://blog.netbsd.org/tnf/entry/the_hardware_assisted_virtualization_challenge> |
|
|
A tutorial (outdated) by an early user of the support: |
A tutorial (outdated) by an early user of the support: |
|
|
http://polprog.net/blog/netbsd-hax/ |
<http://polprog.net/blog/netbsd-hax/> |
|
|
NetBSD/amd64 is the only supported host of the package, but it shouldn't be difficult to expand it to Darwin, Windows and Linux if there would be users and maintainers for these OSes. |
NetBSD/amd64 is the only supported host of the package, but it shouldn't be difficult to expand it to Darwin, Windows and Linux if there would be users and maintainers for these OSes. |
|
|
Line 184 NetBSD as host version 8.0 and HEAD (8.9
|
Line 184 NetBSD as host version 8.0 and HEAD (8.9
|
|
|
There is no longer need to keep a patched host kernel. |
There is no longer need to keep a patched host kernel. |
|
|
There is need to keep at least a copy syssrc in /usr/src(/sys). |
There is need to keep at least a copy of syssrc in /usr/src(/sys). |
|
|
Guests known to work: |
Guests known to work: |
|
|
- NetBSD/amd64 8.99.3x (other variations untested) |
* NetBSD/amd64 8.99.3x (other variations untested) |
- Windows 7 32-bit |
* Windows 7 32-bit |
- FreeBSD 12 32-bit |
* FreeBSD 12 32-bit |
- Linux (noapic boot) |
* Linux (noapic boot) |
- Minix3 i386 |
* Minix3 i386 |
- Plan9 (i386?) |
* Plan9 (i386?) |
- FREEDOS |
* FREEDOS |
|
|
Other OSes are either broken or untested. |
Other OSes are either broken or untested. |
|
|
Line 202 Usage:
|
Line 202 Usage:
|
|
|
1. Install emulators/haxm from pkgsrc |
1. Install emulators/haxm from pkgsrc |
2. Install emulators/qemu 3.1.0nb5 or newer from pkgsrc |
2. Install emulators/qemu 3.1.0nb5 or newer from pkgsrc |
3. Use auxiliary scripts for HAXM (superuser privileges needed): |
3. Use auxiliary scripts for HAXM (superuser privileges needed) |
|
4. Append HAXM option to qemu (qemu --accel hax) |
|
|
- haxm-mknod # creates /dev entries |
Auxiliary scripts in the HAXM package: |
- haxm-modload # insert the HAXM kernel module |
|
- haxm-modunload # remove the HAXM module from kernel |
|
|
|
Optionally grant access to the HAXM device nodes to user(s): |
* haxm-mknod # creates /dev entries |
|
* haxm-modload # insert the HAXM kernel module |
- /dev/HAX |
* haxm-modunload # remove the HAXM module from kernel |
- /dev/hax_vm/* |
|
- /dev/hax_vm*/* |
|
|
|
4. Append HAXM option to qemu |
Optionally grant access to the HAXM device nodes to user(s): |
|
|
qemu --accel hax |
* /dev/HAX |
|
* /dev/hax_vm/vm{00-07} |
|
* /dev/hax_vm{00-07}/vcpu{00-16} |