What are we trying to achieve?
The Embedded and Automotive team within the Xen Project intends to build a platform around the Xen Project Hypervisor that enables the use of the Xen Project Hypervisor for non-data center use cases (automotive, internet TV, mobile and other embedded use cases) by providing a community focal-point within the Xen Project community as well as within the wider open source community. The team plans to
- develop and upstream necessary changes to the Xen Project Hypervisor and Linux
- to implement new drivers (such as GPU, HID, and other drivers needed for non-data center use cases), protocols, capabilities and functionality that are needed for a complete automotive/embedded/mobile virtualization stack
- upstream all necessary changes to support such functionality in operating systems that are needed for these use-cases (e.g. Android, Linux, etc.)
However, the team recognises that there may not always be a natural upstream for some of the code developed (e.g. for a QNX base-port for the Xen Project Hypervisor). The project team will own and maintain additional code repositories to develop and host a complete platform. The project may also maintain development repositories for experimental code, where it is too early to upstream.
Why Xen Project in Embedded and Automotive?
The Xen Project Hypervisor is uniquely placed to support a new range of use-cases, building on top of 11 years of usage within the data centre. In particular, it's isolation and security features, flexible virtualization mode and architecture, driver disaggregation and ARM support (only 90K lines of code) make it a perfect fit for embedded applications.
In 2013 and 2014, significant progress has been made in areas that are important for embedded use-cases. For example:
- Experimental PV ARM support on Nvidia by Samsung (2013)
- Interrupts and IOMEM mapping to DomU to support driver domains by GlobalLogic (2014)
- Development of rich PV drivers for HID, Audio, GPU, framebuffer, etc. by GlobalLogic (2013-14)
- Ongoing improvements to realtime scheduling by DornerWorks and the University of Washington (ongoing, see RTDS scheduler in Xen 4.5)
- Ongoing developments of a QNX baseport by GlobalLogic and a FreeRTOS baseport by Galois (ongoing, see FreeRTOS 6.6.0 for Xen on ARM)
The following presentation and demo gives an overview of what can be expected in the relatively near future. It also covers some of the challenges that still need to be resolved:
Code will be upstreamed to projects under the license of respective upstream project. For code that is hosted by the subproject, e.g. for a QNX base-ports, an appropriate OSI approved license will be used. For PV drivers contributed to the Linux kernel or for Linux user space drivers hosted by the subproject a dual-use license will be used to enable easy sharing of driver code with FreeBSD and other open source operating systems.