Virtualization for Embedded Systems

What Is Virtualization for Embedded Systems?

Virtualization for embedded systems creates a software abstraction layer that runs on top of an embedded hardware System on a Chip (SoC) platform or operating system.

Virtualization was developed in the 1960s to partition mainframe computers for better utilization and has been a primary enabling technology for cloud services. Now it is deployed across a broad range of computing, including desktops and embedded environments.

Virtualization for embedded systems enables multiple virtual machines (VMs) running separate applications, services, and even different operating systems, to coexist on one hardware platform.

Benefits of Virtualization for Embedded Systems

Virtualization provides a range of benefits. Since its origin, it has enabled more efficient use of resources. Other benefits include agility, flexibility, and scalability. Specifically:

  • Dedicated individual hardware is not needed for each VM, which reduces the amount of hardware required to run a wide range of applications and services, reducing costs
  • Each VM can virtualize a different operating system environment so that they can be run simultaneously on the same embedded hardware, reducing hardware complexity
  • Virtualization enables compartmentalization of applications and services so that a software failure on one VM is isolated and won’t cause problems elsewhere; a failing VM can be restarted while other VMs run unscathed
  • Compartmentalization also improves security, as each VM can be kept separate so that even if one environment is compromised, others stay inaccessible
  • If there is a need to move from one type of underlying hardware to another (a genuine problem in the automotive industry during the chip supply shortage), only the host hypervisor will need to be re-coded, but the emulation it provides can be the same, reducing development time
  • During development, digital twins of hardware in the cloud can be used to accelerate time to market

Types of Virtualization for Embedded Systems

There are two broad categories of hypervisor: Type 1 and Type 2. The Type 1 variant runs on bare metal, directly on the underlying hardware, without an operating system in between. The Type 2 alternative, AKA Hosted, runs on an operating system. Although both hypervisor types can achieve similar results, Type 2 is easier to implement because the operating system is already installed and running.

Both hypervisor types can run an emulated operating system, with Type 2 still able to deploy an OS different from the host OS. However, there are subtle differences.

Type 1 is more scalable than Type 2 because the hypervisor is not functioning through an OS layer.

A Type 1 hypervisor has direct access to the underlying hardware and can enable this for the VMs it manages, which provides faster performance than Type 2. This also enhances security because cyberattacks can compromise no common underlying OS.

Examples of Type 1 Hypervisors

Examples of Type 2 Hypervisors

  • VMware Workstation Player
  • Microsoft Virtual PC
  • Oracle VM VirtualBox

How Virtualization for Embedded Systems Works

Both virtualization types operate by running a VM on top of a hypervisor. This manages the VMs, spinning them up when requested, running them, monitoring them, shutting them down, and handling the interface between the VMs and the underlying hardware. It also logically separates the VMs to provide resiliency and security.

The VM emulates a hardware platform, enabling the installation of a guest operating system compatible with the emulated hardware. Applications can then be executed on this guest operating system.

The applications can function as if the guest operating system is running on physical hardware. VMS can exchange information between themselves (with the hypervisor managing the sharing of hardware resources), but they usually run in separate spaces.

The structure of virtualization is fundamentally similar when used in data centers or embedded systems. Whereas data centers will run one of a small number of different hardware platforms and operating systems, embedded system SoCs and operating systems can be much more varied.

The general benefits of virtualization equally apply in automotive: reduced hardware complexity and cost, alongside bulletproof security and reliability provided by VM isolation. The ability to run disparate environments on the same hardware is also advantageous.

For example, the  QNX Hypervisor, a Type-1 hypervisor, can run a legacy Linux application stack in parallel with an Android stack and a QNX stack on the same SoC. This means infotainment software from one vendor can coexist with a digital cockpit requiring a different environment.

Virtual Machines Vs. Containers for Embedded Systems

Just as cloud services are now offered as VMs or containers, embedded systems can support both approaches, too. Both are types of virtualizations. However, a VM emulates an entire platform, enabling the installation of a standard operating system and applications. A container only virtualizes layers, such as specific services or applications, above the operating system. The container includes just the dependencies required to run an application or service.

BlackBerry QNX is trusted across multiple industries to provide the software foundation for safe, secure and reliable systems that get to market faster. In this section, you’ll learn about our other tools and services—including a hypervisor, middleware, professional services and supplementary solutions—as well as about our heritage and deep expertise in embedded system software.

BlackBerry QNX offers a broad range of safety-certified and secure software products complemented by world-class professional services to help embedded developers increase reliability, shorten time-to-market, and reduce development cost.

Check Out Our Other Ultimate Guides

Structural Dependency
Information about the UNECE WP.29 regulations, the countries where they apply and how they aim to mitigate the cybersecurity risks posed to passenger vehicles.
Structural Dependency
Covers topics such as embedded systems protection, security exploits and mitigation, and best practices
Structural Dependency
Offers key concepts and information on standards for safe system design
Structural Dependency
Defines autonomous systems and the various levels of autonomy
Read the Guide