Sockets libvirt如何与kvm通信?

Sockets libvirt如何与kvm通信?,sockets,dbus,kvm,abi,libvirt,Sockets,Dbus,Kvm,Abi,Libvirt,我试图更好地理解libvirt如何与KVM通信,以便能够从我正在开发的主机上的单个进程启动KVM实例 它是否像qemu kvm一样使用ioctl?它是否使用了某种远程消息传递,比如dbus或直接消息传递到本地套接字(我正在远离本地套接字)?还是直接绑定到KVM的内核ABI 是否有可能(可能在内核之上,而不是内核中)(而且不是最糟糕的想法)绕过libvirt,通过libvirt使用的方式直接与KVM对话?(这部分只是好奇而已)从技术上讲,libvirt本身根本不与KVM对话。KVM是QEMU用来提

我试图更好地理解libvirt如何与KVM通信,以便能够从我正在开发的主机上的单个进程启动KVM实例

它是否像qemu kvm一样使用ioctl?它是否使用了某种远程消息传递,比如dbus或直接消息传递到本地套接字(我正在远离本地套接字)?还是直接绑定到KVM的内核ABI


是否有可能(可能在内核之上,而不是内核中)(而且不是最糟糕的想法)绕过libvirt,通过libvirt使用的方式直接与KVM对话?(这部分只是好奇而已)

从技术上讲,libvirt本身根本不与KVM对话。KVM是QEMU用来提供CPU虚拟化的内核模块。Libvirt管理QEMU并让QEMU处理KVM。可以编写不同的用户空间应用程序来使用KVM-kvmtool是使用KVM内核模块的QEMU的一种替代方案。Libvirt在启动初始流程后通过QEMU的监控协议与QEMU对话