2009-09-16 15:42:24 +00:00
|
|
|
libvirt library code README
|
|
|
|
===========================
|
|
|
|
|
|
|
|
The directory provides the bulk of the libvirt codebase. Everything
|
|
|
|
except for the libvirtd daemon and client tools. The build uses a
|
|
|
|
large number of libtool convenience libraries - one for each child
|
|
|
|
directory, and then links them together for the final libvirt.so,
|
|
|
|
although some bits get linked directly to libvirtd daemon instead.
|
|
|
|
|
|
|
|
The files directly in this directory are supporting the public API
|
|
|
|
entry points & data structures.
|
|
|
|
|
|
|
|
There are two core shared modules to be aware of:
|
|
|
|
|
|
|
|
* util/ - a collection of shared APIs that can be used by any
|
|
|
|
code. This directory is always in the include path
|
|
|
|
for all things built
|
|
|
|
|
|
|
|
* conf/ - APIs for parsing / manipulating all the official XML
|
|
|
|
files used by the public API. This directory is only
|
|
|
|
in the include path for driver implementation modules
|
|
|
|
|
2011-02-12 16:09:28 +00:00
|
|
|
* vmx/ - VMware VMX config handling (used by esx/ and vmware/)
|
|
|
|
|
2009-09-16 15:42:24 +00:00
|
|
|
|
|
|
|
Then there are the hypervisor implementations:
|
|
|
|
|
|
|
|
* esx/ - VMware ESX and GSX support using vSphere API over SOAP
|
|
|
|
* lxc/ - Linux Native Containers
|
|
|
|
* opennebula/ - Open Nebula using XMLRPC
|
|
|
|
* openvz/ - OpenVZ containers using cli tools
|
|
|
|
* phyp/ - IBM Power Hypervisor using CLI tools over SSH
|
|
|
|
* qemu/ - QEMU / KVM using qemu CLI/monitor
|
|
|
|
* remote/ - Generic libvirt native RPC client
|
|
|
|
* test/ - A "mock" driver for testing
|
|
|
|
* uml/ - User Mode Linux
|
|
|
|
* vbox/ - Virtual Box using native API
|
2011-02-12 16:09:28 +00:00
|
|
|
* vmware/ - VMware Workstation and Player using the vmrun tool
|
2009-09-16 15:42:24 +00:00
|
|
|
* xen/ - Xen using hypercalls, XenD SEXPR & XenStore
|
2011-02-12 16:09:28 +00:00
|
|
|
* xenapi/ - Xen using libxenserver
|
2009-09-16 15:42:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
Finally some secondary drivers that are shared for several HVs.
|
|
|
|
Currently these are used by LXC, OpenVZ, QEMU, UML and Xen drivers.
|
|
|
|
The ESX, OpenNebula, Power Hypervisor, Remote, Test & VirtualBox
|
|
|
|
drivers all implement the secondary drivers directly
|
|
|
|
|
2011-02-12 16:09:28 +00:00
|
|
|
* cpu/ - CPU feature management
|
2009-09-16 15:42:24 +00:00
|
|
|
* interface/ - Host network interface management
|
|
|
|
* network/ - Virtual NAT networking
|
2011-02-12 16:09:28 +00:00
|
|
|
* nwfilter/ - Network traffic filtering rules
|
2009-09-16 15:42:24 +00:00
|
|
|
* node_device/ - Host device enumeration
|
|
|
|
* secret/ - Secret management
|
|
|
|
* security/ - Mandatory access control drivers
|
|
|
|
* storage/ - Storage management drivers
|
|
|
|
|
|
|
|
|
|
|
|
Since both the hypervisor and secondary drivers can be built as
|
|
|
|
dlopen()able modules, it is *FORBIDDEN* to have build dependencies
|
|
|
|
between these directories. Drivers are only allowed to depend on
|
|
|
|
the public API, and the internal APIs in the util/ and conf/
|
|
|
|
directories
|