2 个版本
使用旧的Rust 2015
0.1.3 | 2018年7月22日 |
---|---|
0.1.2 | 2018年7月22日 |
0.1.1 |
|
0.1.0 |
|
在操作系统类别中排名430
105KB
2.5K SLoC
libwhp
Windows Hypervisor Platform API for Rust: https://docs.microsoft.com/en-us/virtualization/api/
这个crate利用了Rust中可用的安全性、生命周期、内存管理和错误处理功能,同时保留了原生Windows Hypervisor Platform (WHP) API的原设计。
先决条件
确保至少有
- Windows 10版本17134(或更高版本)
- Windows Server 1803(或更高版本)
启用Windows Hypervisor Platform并重启
Dism /Online /Enable-Feature /FeatureName:HypervisorPlatform
shutdown /r /t 0
最后但同样重要的是,安装Windows上的Rust。
运行示例程序
- 克隆项目的存储库
git clone https://github.com/insula-rs/libwhp
cd libwhp
- 此示例包含一个有效负载(“guest”二进制文件),需要使用GCC编译,例如在WSL(Windows Subsystem for Linux)中。我们只需要make、gcc和ld。在Ubuntu上
wsl sudo apt-get update
wsl sudo apt-get dist-upgrade -y
wsl sudo apt-get install gcc make binutils -y
- 构建有效负载
pushd examples\payload
wsl make
popd
- 构建和运行示例
cargo run --example demo
这是它的作用
- 检查虚拟机的存在
- 创建分区
- 设置各种分区属性,如允许的退出类型和CPUID结果
- 分配和映射内存
- 创建vCPU
- 设置长模式(64位)的寄存器
- 读取内存中的有效负载(payload.img)
- 设置MMIO / IO端口指令模拟器和相关回调
- 启动vCPU循环
- 处理各种类型的退出:CPUID、MSR读/写、IO端口、MMIO、Halt等
依赖项
~145KB