Stratos

Elevator Pitch

Project Stratos was our pathfinder project looking to establish VirtIO as the standard interface between hypervisors, freeing a mobile, industrial or automotive platform to migrate between hypervisors and reuse the backend implementation. We helped upstream a number of VirtIO devices to the OASIS Specification as well front end drivers for the Linux Kernel. During the project we experimented with using Rust for backend implementations and eventually became maintainers of the Rust VMM vhost-device repository. The repository provides a number of vhost-user backends which we have run as backends for devices in guests running under a variety of hypervisors (pure QEMU emulation, KVM, Xen and Gunyah).

While Project Stratos itself has come to an end Linaro is still heavily invested in furthering VirtIO as a technology and will continue to work with it under the auspices of our other projects. We are keeping the project infrastructure up for reference as well as proving a useful place to share patches for the various projects that want to enable VirtIO.

VirtIO Use Cases

Emulation

HALs

Cloud Native Development

 

Further Reading

Blog Posts

Meeting Archives

 

About this project

There is a growing trend towards virtualization in areas other than the traditional server environment. The server environment is uniform in nature, but as we move towards a richer ecosystem in automotive, medical, general mobile and the IoT spaces, more device abstractions are needed, and way richer organizations are needed:

  • In the automotive world, devices as different as FM radio and CAN bus need to be abstracted

  • Virtual Machine Monitor (VMM) may need to become a certifiable entity with real-time capabilities

  • Some deployment models are based on “stub VMs” to deal with hardware and keep the hypervisor mostly out of hardware handling

  • In automotive, VMs can be as diverse as Android (IVI, Automotive Grade Linux (e-cockpit), Apertis (ADAS)

  • Guaranteed performance of IO is a critical enabler in any use case

  • VMM / “safeOS” on cortex-A

  • VMM / “safeOS” on cortex-M

  • Virtio backends

    • in the hypervisor

    •  in a stub domain

    • n “primary” VM (mobile)

The conclusions of member discussions related to the above topics are:

  • Mobile and automotive share in common a need to resolve several missing abstractions such as clocks, RPMB, FM radio…

  • There are gaps in interfaces between VMs and hypervisor to deal with guaranteed IO performance

  • Commercial offerings will dominate the market. Yet, there is a need to define clear interfaces so that there is no coupling between VM, hypervisor, hardware, VMM architecture.

Project Stratos is working towards developing hypervisor agnostic abstract devices leveraging virtio and extending hypervisor interfaces and standards to allow all architectures.

The four key areas of interest are

  • High-performance Virtio interfaces

  • Virtual Machine Monitors with a safety island

  • Boot Orchestration

  • Written Standards for the hypercalls

Calendar

We no longer have regular meetings for Stratos but we will add any upcoming open meetings discussing VirtIO to the calendar for ease of navigation. This calendar is displayed using UTC timezone with no DST offsets.

All of the work is covered in Jira cards which you can view in the current sprint at the project home page and navigate from there: https://linaro.atlassian.net/jira/software/c/projects/STR/boards/145



Details

Sub pages focusing on Use cases






Linaro Ltd, 2020