An experimental x86-64 hypervisor purpose-built for deterministic software testing.
Bedrock uses Intel VT-x to run guest VMs with fully emulated time (TSC), controlled randomness (RDRAND/RDSEED), various other device emulation, and copy-on-write VM forking - enabling reproducible execution for deterministic testing.
┌────────────────────────────────────────────────────┐
│ 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 host kernel built with
CONFIG_RUST=yand rustc >= 1.87 -
Patched linux 6.18 guest kernel (see guest-patches/)
-
Bedrock requires Intel CPUs that support either
EPT-friendly PEBSor thePDIRfeature.The following CPUs have been confirmed to work:
Intel(R) Xeon(R) Gold 5412U(rented on Hetzner)Intel(R) Xeon(R) Silver 4310(rented on Worldstream)Intel(R) Core(TM) i7-7700(rented on Hetzner)Intel(R) Core(TM) i7-6700(rented on Hetzner){r,m}7i.metal-24xlinstances on AWS.
CI uses RunsOn with m7i AWS instances.
This project was created with heavy assistance from LLMs. Might freeze/hang or otherwise corrupt host machine, run at your own risk.