Friday, November 2, 2012

HVX from 32768 feet

During last year and a half I am working on HVX project. If I remember correctly, HVX stands for HypeVisor eXtention.

It is а nested virtualization hypervisor implemented fully in software. Like KVM it's using QEMU for machine emulation, but instead of relying on hardware virtualization support for guest de-privileging, HVX uses dynamic binary translation of the guest kernel. The guest instructions that might access privileged state are simulated, while "safe" instructions are executed as is. Despite the apparent overhead the guest runs pretty fast, thanks to locality principle, caching, hashing and that kind of stuff.

Since the guest is not allowed to execute privileged instructions, it has no means to control its virtual memory mappings and HVX implements software MMU and maintains shadow page tables.

Add to it emulation of several performance critical devices and that more or less completes the picture :)

No comments:

Post a Comment