dergoegge/bedrock
GitHub: dergoegge/bedrock
一个实验性的 x86-64 虚拟机监控程序,通过硬件虚拟化与确定性机制解决软件测试中的可复现性问题。
Stars: 6 | Forks: 0
# Bedrock
一个用于确定性软件测试的实验性 x86-64 虚拟机监控程序。
Bedrock 使用 Intel VT-x 运行具有完全模拟时间(TSC)的客户虚拟机,
受控随机性(RDRAND/RDSEED)、各种其他设备模拟,以及写时复制虚拟机分叉——实现可重复执行以用于确定性测试。
## 架构
```
┌────────────────────────────────────────────────────┐
│ User Space │
│ │
│ bedrock-vm Rust library for VM control │
│ │
│ │ ioctl │
├────────────────────────┼───────────────────────────┤
│ ▼ │
│ Kernel Space │
│ │
│ bedrock.ko Kernel module (/dev/bedrock) │
│ - VMX setup and VM execution │
│ - EPT memory virtualization │
│ - Deterministic device emulation │
│ - ... │
│ │
└────────────────────────────────────────────────────┘
```
## 要求
- [Linux 6.18](https://github.com/torvalds/linux/tree/v6.18) 主机内核并启用
`CONFIG_RUST=y`
- Intel(R) Xeon(R) Gold 5412U(其他支持 VT-x 的现代 Intel CPU 应该也可以工作,但可能需要微调)
- 打补丁的 Linux 6.18 客户机内核(请参考 [guest-patches/](guest-patches/))
*本项目在大型语言模型的协助下开发。可能出现冻结、挂起或主机损坏,请自行承担风险运行。*
标签:bedrock, deterministic testing, hypervisor, Intel VT-x, Linux 内核模块, pocsuite3, RDRAND, RDSEED, Rust, software testing, TSC, virtualization testing, VM forking, x86-64, 内核模块, 可视化界面, 可重现执行, 复制时写, 安全测试, 安全渗透, 安全资源, 实验性, 攻击性安全, 时间仿真, 确定性测试, 网络流量审计, 虚拟化, 虚拟机监控器, 设备仿真, 软件测试, 通知系统