5个版本
0.2.0 | 2022年5月1日 |
---|---|
0.0.12 | 2019年12月29日 |
0.0.11 | 2019年12月29日 |
0.0.10 | 2019年12月29日 |
0.0.9 | 2019年12月28日 |
#84 in 模拟器
用于 uhyve
86KB
1.5K SLoC
xhypervisor
xhypervisor
是一个 Rust 库,它利用了在 OS X 上启用虚拟机硬件加速执行的功能。它是 hypervisor-rs 的分支,并针对 uhyve 和 ehyve 的开发进行了修改。基于 ahv,我们添加了对苹果硅上 Apple Hypervisor Framework 的支持。
它绑定到 OS X 上的 Hypervisor 框架,并通过 hypervisor
模块提供了一个安全的 Rust 接口,以及通过 xhypervisor::ffi
模块提供了一个不安全的外部函数接口。
一个从 16 位虚拟机 衍生的 xhypervisor 被用作测试示例,该示例最初发布在博客文章 http://www.pagetable.com/?p=764 中。
先决条件
要使用此库,您需要
-
OS X Yosemite (10.10) 或更高版本
-
具有 VT-x 功能的 Intel 处理器或具有虚拟化支持的苹果硅处理器。要验证这一点,请在终端运行并预期以下结果
$ sysctl kern.hv_support kern.hv_support: 1
状态
- 警告:苹果硅支持处于早期阶段
- 访问 x86 寄存器
- 访问 aarch64 寄存器
- x86:访问特定于模型的寄存器 (MSRs)
- 将客户物理内存段映射到客户物理地址空间
- 虚拟 CPU
- 执行和中断
- 强制刷新缓存的状
- 使转换后备缓冲区 (TLB) 无效
- 访问浮点 (FP) 和 SIMD 状态
- 获取累积执行时间
- 同步客户时间戳计数器 (TSC)
- x86:访问虚拟机控制结构 (VMCS) 的字段
依赖项
~280–780KB
~18K SLoC