mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
Add a README file to src/ explaining the directory structure
* src/README: New file
This commit is contained in:
parent
1355e0552e
commit
b1be11c727
56
src/README
Normal file
56
src/README
Normal file
@ -0,0 +1,56 @@
|
||||
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
|
Loading…
Reference in New Issue
Block a user