Skip to content

libvmi: libmicrovmi replaces the hypervisor access layer (explicit access method) #317

Closed

Description

@Wenzel

Parent

#312

What to build

In the Wenzel/libvmi fork: fast-forward master to upstream libvmi/libvmi master, and rebuild the libmicrovmi branch as a fresh commit series on it (old history discarded, force-pushed). libmicrovmi replaces the native Xen, KVM, file and bareflank drivers. Keep the old branch's wiring: memory cache, IDTR/GDTR register mapping, Xen/KVM LibVMI mode mapping, KVMI socket init data. Add a VMI_VIRTUALBOX LibVMI mode and init data selecting the VirtualBox access method (MachineDebugger or VBoxVMI) and the VBoxVMI socket path, mapped one-to-one onto libmicrovmi's C init params. Physical reads, pause/resume, vCPU registers, max physical address go through libmicrovmi; the event API returns VMI_FAILURE. Build against a system install of libmicrovmi dev (virtualbox feature). CI builds libmicrovmi dev at a pinned commit, then LibVMI and examples (build only).

Acceptance criteria

  • Fork master equals upstream master; libmicrovmi branch is a short fresh series on it
  • All upstream vmi_mode values kept; file and bareflank fail at init as unsupported; memflow Driver maps to a memflow LibVMI mode
  • vmi_get_access_mode reports VMI_VIRTUALBOX for a VirtualBox VM
  • pause-example and map-paddr work over explicit MachineDebugger and explicit VBoxVMI
  • Event registration returns VMI_FAILURE
  • CI green on the force-pushed branch

Activity

  1. Wenzel commented on Oct 21, 2026

    @Wenzel
    OwnerAuthor

    Completed. The revived LibVMI libmicrovmi bridge, Ubuntu VirtualBox guest/profile, C vCPU-count export, default VBoxVMI selection and MachineDebugger fallback, explicit-access-method wiring, and the e2e harness are delivered. Evidence: libmicrovmi commits df0f1c7/2c2bcb8 and LibVMI commits baeb928/3ef30fe/1a56e01/850b4ff; the live VirtualBox e2e harness passed default, fallback, explicit VBoxVMI and MachineDebugger selections.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions