Skip to content
Virtual Machine Monitor
Rust Assembly Other
Branch: master
Clone or download
jinankjain and KarimAllah add ap binary to gitignore
Signed-off-by: Jinank Jain <jinank94@gmail.com>
Latest commit e5484cc Nov 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
libvmm_macros
scripts
src
testing testing: Start using the newly introduced libos crate Nov 17, 2019
.gitignore
Cargo.toml
Contributing.md
README.md

README.md

Library VMM

Experimenting with building library VMM in Rust. Unclear what this will turn out to be.

License

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.3 Guest state.
You can’t perform that action at this time.