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 |
|
|
Independent OS update and reboot |
|
|
Multiple OS instance support |
Available for all guests when using full virtualization |
Only available for RTOS guests. |