mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-04 20:31:13 +00:00
57 lines
2.3 KiB
Plaintext
57 lines
2.3 KiB
Plaintext
|
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
|
||
|
|
||
|
|
||
|
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
|
||
|
* xen/ - Xen using hypercalls, XenD SEXPR & XenStore
|
||
|
|
||
|
|
||
|
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
|
||
|
|
||
|
* interface/ - Host network interface management
|
||
|
* network/ - Virtual NAT networking
|
||
|
* 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
|