1 unstable release
0.1.0 | Oct 12, 2019 |
---|
#1354 in Procedural macros
23 downloads per month
Used in libvmm
9KB
181 lines
Library VMM
Experimenting with building library VMM in Rust. Unclear what this will turn out to be.
License
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
New to Rust?!
- Here you can find out how to install Rust on your system.
- This is a very clear point to start off learning Rust or to find more details about it.
Installing project dependencies
$ ./scripts/install-deps
- Logout and login again to make group modifications to be effective.
How to run the unit tests
$ cd src/testing
$ make
Todo
- Basic VMCS handling support.
- Add a first unit test.
- Add basic EPT page table handling.
- Add support for managing MSR and IO bitmaps.
- Add support for skipping instructions.
- VMLaunch/VMResume support.
- Add basic VMCS validation code.
- Port kvm-unit-tests tests.
- Port KVM kernel selftests.
- Add NMI support.
- Add support for SGX virtualization.
- Add processor craziness mitigations for speculation attacks.
- Add MCE handling.
- Add support for VPID.
- MONITOR & MWAIT + APERF/MPERF emulation.
- Add CPUID emulation.
- Add PLE support.
- Add TSC scaling support.
- Add VMCS shadowing support.
- Add preemption timer support.
- Add PML support.
- Instruction emulation.
- Create a library OS to use it for testing.
- Add support for request-interrupt-window.
- Add support for Interrupt on entry settings.
- Add support for managing IOMMU page tables.
- Add support for hardware posted interrupt.
- Add support for APICv.
- Add support for SVM.
- Add better support for non-root guest mode code.
- Extend the VMCS validation checks in (${}/src/x86_64/instructions/vmcs.rs).
- 26.2 VMX controls and host state.
- 26.2.1 VMX controls.
- 26.2.1.2 VM Exit control validation.
- 26.2.1.3 VM Entry control validation.
- 26.2.2 Host controls and MSRs.
- 26.2.3 Host segment and descriptor tables.
- 26.2.4 Address space size.
- 26.2.1 VMX controls.
- 26.3 Guest state.
- 26.2 VMX controls and host state.
Dependencies
~235–650KB
~16K SLoC