Development of the open source hypervisor Jailhouse started in 2014. Jailhouse was specifically designed for isolated real-time applications, whether bare-metal or RTOS based, or certifiable software.
Jailhouse employs asymmetric multiprocessing (AMP) to accomplish its purpose. With Jailhouse, hardware is statically partitioned and individual CPUs and devices strictly separated.
The overarching aim of this design is simplicity. There should be as little coding as possible to achieve the two most important requirements of Jailhouse: Real-time capability and certifiability (verifiability).
Jailhouse is thus a type 2 hypervisor, in other words built on an operating system (in this case: Linux). Linux assumes the entire first initialization of the hardware, enabling an extremely lean hypervisor. Moreover, there is a large number of supported (and supportable) hardware available. Further, it was meant to be an open source solution (GPLv2) so that processes are made transparent to everyone.
The results are compelling – Jailhouse today supports x86 and ARM (v7 and v8) processors. It is required that CPUs support a virtualization solution in the hardware (e.g. Intel VT-x, ARM VE). This enables code significantly smaller than 10 000 LoC, and real-time capability is constituted or preserved with an additional latency in the range of approx. 1 µsec which is attributable to the hypervisor.
Jailhouse therefore makes it possible to summarize solutions that were previously dispensed across several computers/systems and runs them together on a heterogenous multi-core CPU. Thanks to its ability to support various operating systems, it is often not necessary to alter applications.
Further information can be found here.