Introduction into Real-time Hypervisor Technology

Virtualization

When using full virtualization, operating systems like Windows® or Linux including its drivers and applications are running on top of a completely virtual or emulated hardware, a so-called Virtual Machine or VM.

All OS drivers do not access real hardware but interact with the virtualized hardware which the underlying Hypervisor provides.

The Guest Operating Systems run unmodified with original hardware drivers that think they are running on real hardware.

One advantage is that the guest operating systems are totally isolated from the Hypervisor host as well as other guests OSes and also from the hardware.

The second advantage is that hardware can be shared between the guests. As one example the guests may all use a single Ethernet connection to connect to the outside world.

Of course, there are also some negatives. The most important one is performance. Running an OS on virtual hardware may be significantly slower than running a guest on real physical hardware, because in full virtualization the hardware needs to be emulated by the underlying Hypervisor.

Para-Virtualization

With Para-Virtualization we are using Hypervisor aware guest drivers instead of using native hardware drivers and emulated hardware.

For example: instead of emulating some kind of Intel or other legacy Ethernet controllers a specific driver which is aware of the underlying Hypervisor is used as the network driver.

With Para-Virtualization the performance can be significantly enhanced, because there is no need for emulating an underlying hardware.

Pass Through

Pass Through is a technique where a specific part of the physical hardware is allowed to be used exclusively by the guest operating system. This means that the guest operating system (Windows® or Linux) is directly accessing a specific piece of the hardware for example an ethernet controller.

This has a significant performance benefits; as there is nothing in between the guest driver and the hardware, native performance will be achieved.
But there are also some restrictions.

Availability of pass through is depending on hardware. A typical example are multifunction devices. If your PCI device has two or more functions such functions may not be used by different guests, typically all functions must be passed through to a single guest.

Furthermore, such hardware cannot be shared anymore because it is directly assigned to one specific guest.

Partitioning

Partitioning means, the single PC hardware is split into two or more hardware partitions. Each partition can be considered being a fully operable small PC with CPUs, memory and devices.

In this example you can see a PC split into two partitions. The partition at the bottom contains one CPU core, a piece of memory as well as a single hardware device. The remaining CPU cores, memory and hardware devices belong to the top partition.

Each guest now will run on one of the partitions.

This is specifically important for Real-time guests, to preserve Real-time behavior a Real-time guest must exclusively run on its own hardware partition. Running other guests would lead to unpredictable delays and thus destroy determinism.

Each Real-time operating system has to be assigned to one specific hardware partition. All non Real-time guests may run on the remaining hardware partition.

What is a Real-time Hypervisor?

A Real-time Hypervisor is a software platform that enables multiple operating systems to run on the same physical hardware concurrently, with Real-time guarantees. This allows you to partition your hardware resources and run multiple operating systems and applications side-by-side, with each operating system and application running in its own virtual machine (VM).

With a Real-time Hypervisor, you can:

  • Run multiple operating systems on the same hardware, including Real-time operating systems (RTOS)
  • Partition hardware resources such as CPU, memory, and I/O devices, and allocate them to different VMs as needed
  • Run multiple applications concurrently, with each application running in its own VM
  • Ensure Real-time performance of critical applications by assigning them higher priority and dedicating more resources to them
  • Easily manage and monitor the performance of your VMs and applications
  • Quickly and easily deploy and scale your applications across multiple hardware platforms

Whether you're working in a high-performance computing environment, an industrial automation setting, or a mission-critical application, a Real-time Hypervisor can help you get the most out of your hardware resources and ensure the reliable and deterministic performance of your applications.

Comparison of type 1 bare-metal and type 2 Hypervisor

Criteria

Type 1 Hypervisor / bare-metal Hypervisor

Type 2 Hypervisor

Real-time Performance

Very good

(if Real-time OS runs on a separate hardware partition)

Very good

(if Real-time OS runs on a separate hardware partition)

RTOS boot time

Good

(RTOS can be booted immediatelly after Hypervisor is running)

Poor

(RTOS can be booted only after host OS is ready)

Separation, Security

Perfect

(if using full virtualization for Non Real-time OS)

Good

(OS separated via MMU an Intel Virtualization technology)

Installation effort an complexity

  • Extra step for Hypervisor installation and configuration needed
  • Overall more complex solution
  • Simple installation
  • Less complex technology

Independent OS update and reboot

  • Guests can be updated and rebooted independently
  • Only available for RTOS guests
  • RTOS needs to be stopped if Hypervisor Host OS shall be updated and/or rebooted

Multiple OS instance support

Available for all guests when using full virtualization

Only available for RTOS guests.