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 14 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.
The following presentation gives an overview over Xen Project Hypervisor functionality in the data centre and security applications that may be relevant for embedded applications. It also gives a brief overview of products and projects in embedded and automitive market segments and its use of the Xen Project Hypervisor. It also contains links to many useful resources.
There is also a good recording of a Xen related session at Embedded Linux Conference 1016, which covers some of the topics from the deck above in more detail.
A number of key ongoing developments started in late 2016, that are relevant for this market segment:
- Shared coprocessor framework: The main idea of the coprocessor sharing is to let different domains use coprocessor concurrently and independently within some time share. Coprocessor sharing will enable sharing such as GPUs, DSPs and others
- ABIs and reference implementations for various PV protocols: in particular for PV Sound, PV Display & PV DRM
The following section shows a number of demos of what exists today.
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.