|xenstored unix sockets|
|xenstored kernel ring interface|
Xen uses a xenstore daemon to allow dom0 and guests get access to information about configuration space for itself and the system. Xen currently supports two versions of the daemons:
* cxenstored * oxenstored
Most solutions today are shipping with only cxenstored, but there are optimizations that were done on oxenstored which should be considered by users who want to scale xen with a large set of hosts. For more details see the information below. Communication to the xenstored can happen through unix domain sockets or through the kernel ring interface, both of which are documented below.
The XenStore is initialized and maintained xenstored. Go read more details at these two pages:
xenstored unix sockets
Systems which enable unix sockets (non stubdom solutions, and not on the mini OS) get two Unix domain sockets created which enable userspace to communicate with the xenstored. The Unix sockets are created by the xenstored. There are two unix sockets:
* /var/run/xenstored/socket * /var/run/xenstored/socket_ro
xenstored kernel ring interface
The xenstored kernel ring interace is used by guests as they cannot get access to the unix domain sockets on dom0, instead they use the xenbus for communication with the xenstored. This sections needs some more love.
The cxenstored was the original implementation for the xenstored, it is written in C. The code lives under tools/xenstore/.
The oxenstored is the next generation xenstored and it is written in Ocaml. The code lives under tools/ocaml/xenstore/.