1 个不稳定版本

0.1.0 2019年10月12日

#7#vmm

每月 22 次下载
用于 libvmm

Apache-2.0

9KB
181

库 VMM

在 Rust 中构建库 VMM 的实验。不清楚最终结果会是什么。

许可证

新接触 Rust 吗?!

  • 这里可以找到如何在您的系统上安装 Rust 的方法。
  • 这里是一个学习 Rust 或获取更多详细信息的好起点。

安装项目依赖项

$ ./scripts/install-deps
  • 注销并重新登录以使组修改生效。

如何运行单元测试

$ cd src/testing
$ make

待办事项

  • 基本的 VMCS 处理支持。
  • 添加第一个单元测试。
  • 添加基本的 EPT 页表处理。
  • 添加管理 MSR 和 IO 位图的支持。
  • 添加跳过指令的支持。
  • VMLaunch/VMResume 支持。
  • 添加基本的 VMCS 验证代码。
  • 迁移 kvm-unit-tests 测试。
  • 迁移 KVM 内核自测。
  • 添加 NMI 支持。
  • 添加对 SGX 虚拟化的支持。
  • 添加针对推测性攻击的处理器疯狂缓解措施。
  • 添加 MCE 处理。
  • 添加对 VPID 的支持。
  • MONITOR & MWAIT + APERF/MPERF 模拟。
  • 添加 CPUID 模拟。
  • 添加 PLE 支持。
  • 添加 TSC 缩放支持。
  • 添加 VMCS 遮影支持。
  • 添加抢占定时器支持。
  • 添加 PML 支持。
  • 指令模拟。
  • 创建一个用于测试的库操作系统。
  • 添加对请求中断窗口的支持。
  • 添加对入口中断设置的 support。
  • 添加对管理 IOMMU 页表的支持。
  • 添加对硬件已发布中断的支持。
  • 添加对 APICv 的支持。
  • 添加对 SVM 的支持。
  • 添加对非 root 客户端模式代码的更好支持。
  • 扩展 (${}/src/x86_64/instructions/vmcs.rs) 中的 VMCS 验证检查。
    • 26.2 VMX 控制和主机状态。
      • 26.2.1 VMX 控制。
        • 26.2.1.2 VM 退出控制验证。
        • 26.2.1.3 VM 进入控制验证。
      • 26.2.2 主机控制和 MSR。
      • 26.2.3 主机段和描述符表。
      • 26.2.4 地址空间大小。
    • 26.3 客户端状态。

依赖关系

~1.5MB
~34K SLoC