XenServer for Developers
XenServer is and always has been based on open source software, and going forward it will be built using the upstream codebase from the Linux Foundation's Xen Project. XenServer is a Linux distribution that is based on the Xen hypervisor, the Linux kernel, and the CentOS Linux distribution and user tools. In 2009, Citrix released XAPI, the XenServer management toolstack, under the Lesser GNU Public License v2. This change marked the beginning of XenServer's transition to to become pure open source software. The next phase of this transition began when xen.org became a Linux Foundation Collaborative Project. Along with the Xen hypervisor, XenServer's XAPIwas accepted as a subproject of the Xen Project.
Where can I find the code?
XenServer is a large project, comprised of many hundreds of individual software components. Many of these components are custom-written for XenServer, but the rest of it comes to us in the form of software installed in XenServer's CentOS-based dom0, or from build dependencies used to build XenServer's custom software. Of the components making up the XenServer product the vast majority are open source with the remaining containing links to closed-source third-party libraries or which are closed source components included in dom0 as binary packages.
The source code for the custom software written for XenServer is hosted on Github under the XenServer organisation. This organisation hosts all of XenServer's open source software that isn't already part of another open source project. This includes things like XenCenter, our management GUI, and our auto certification kit.
A large portion of XenServer's components are now being developed as part of the Xen Project's XAPI Project. The source code for XAPI and it's related dependencies can be found on Github under the XAPI Project organization. This includes XAPI itself, as well as the Storage Managers, the XAPI SDK, and tools for building XAPI and it's dependencies on upstream CentOS and Debian/Ubuntu.
Additionally, there are a small number of XenServer components which are not able to be open sourced. They are listed below, together with the reason they must remain closed.
|v6d||License server daemon||Citrix||Links to closed source library|
|(various drivers)||System drivers and user tools||Various||Third-party components which Citrix does not own|
How can I contribute?
If you would like to contribute to XenServer or XAPI Project development, you can start by following developer discussions on xen-api @ lists.xen.org. We will also be creating a new mailing list at xs-devel @ lists.xenserver.org for development discussion specific to XenServer. There is also a XAPI Project Roadmap which will give details of the short- to mid-term development plans for the XAPI Toolstack, which powers XenServer. Pick a component that you're interested in, and learn how to build the code and deploy your custom build on a XenServer host. If you have a bug report or feature request, start a thread on one of the two mailing lists. Each of the sub-components has its own process for accepting patches and bug reports; please read that component's README or CONTRIB file for more information.
External XenServer Dependencies
XenServer makes use of a number of upstream software components, including, but not limited to, the following: