As of this week Oracle’s latest VirtualBox development code begins to work with Linux’s native KVM back-end. Support for KVM or other native OS hypervisors in conjunction with VirtualBox has long been sought and it’s finally becoming a reality.
Back in 2024 was an experimental implementation of KVM for VirtualBox developed independently by Cyberus Technology. Now in 2026 the latest VirtualBox upstream code is finally beginning to work with KVM in “a somewhat workable shape” and can be used by users who opt-in for it with the latest code or when VirtualBox’s own kernel drivers aren’t working. This support is found in the very latest VirtualBox Git or those using the VirtualBox.org test builds for Linux.
Details on KVM working with VirtualBox can be found via this GitHub ticket. The next major release of VirtualBox with this support isn’t expected to happen for a while.
While KVM can now work with VirtualBox, Oracle engineer Alexander Eichner argues the benefits of VirtualBox’s own hypervisor implementation include:
1. Our kernel drivers offer more advanced networking modes, which are tedious to set up otherwise.
2. Our hypervisor offers better emulation accuracy for older guests, for example we emulate the A20 gate correctly for guests which rely on that like DOS (wrapping memory around at 1MB), KVM doesn’t offer that.
3. Additional optimizations in the hypervisor core, for example we allow handling certain parts of device emulations to be done in ring 0 to improve performance, especially for emulations for older guests. Not too much of an issue for modern workloads using more efficient devices
4. Our hypervisor optimizes VM exits in order to reduce them, for example if two VM exits are very close to another (two MMIO exits or I/O port access) and are executed frequently our hypervisor doesn’t jump back to the guest requiring costly state syncing but just emulates the instructions after the first exit.
5. Our instruction emulator is far more advanced than what KVM offers, for example we are able to emulate MMIO exits done by instructions which are usually not meant to be used for MMIO.
2-5 are mostly relevant for older or more exotic guests, most modern workloads will probably not notice much of a difference, especially if they are aware that they are running in a VM and modify their behavior accordingly.
Interesting work nevertheless in finally allowing upstream VirtualBox to play nicely with KVM. This change follows VMware working to bring VMware Workstation atop KVM on Linux.
