Automotive Virtualization

What Is Virtualization?

Virtualization is when computer software runs in an environment where the hardware is abstracted. The software communicates not directly with the hardware but via a layer mimicking a hardware configuration. The underlying hardware can be different from the configuration presented to the software, such as a processor with lots of cores being presented as multiple processors with fewer cores. This ability to segment a more extensive system into smaller parts makes it possible to keep the segments separate: If one part has a problem, it can be prevented from affecting the others. The abstracted hardware segments are called virtual machines.

What Is Automotive Virtualization?

Automotive virtualization harnesses the potential of virtualization for the car industry. As the Software-Defined Vehicle emerges, systems will increasingly become integrated. Previously these systems were physically separate, each with its own Electronic Control Units (ECUs). But now, more of these systems are operated from centralized computer resources. Virtualization allows these systems to coexist while remaining separate, with the ability to exchange data easily when required but not to affect each other when this would have a negative impact.

As with other forms of virtualization, automotive virtualization uses a hypervisor to manage its virtual machines. An automotive hypervisor can start up and shut down the virtual machines, as well as control how they communicate with each other. The hypervisor can support virtual machines hosting software from different vendors on the same hardware, managing how much of the hardware resources each can take and what data can be shared between them.

An example of a hypervisor for automotive is the QNX® Hypervisor from BlackBerry, which offers two different variants: QNX® Hypervisor for Safety and QNX Hypervisor (non-safety variant), for systems requiring a mix of safety and no-safety environments. This enables an automaker to run virtual machines hosting operating systems via QNX® Advanced Virtualization Frameworks. Google Android Automotive OS is supported alongside Linux-based as guest operating systems within virtual machines.

Benefits of Virtualization for Automotive

Mission-critical automotive functions such as Advanced Driver-Assistance Systems (ADAS) must be kept separate from less essential functions such as infotainment. Virtualization for Automotive enables these functions to coexist on shared hardware without the risk of a less critical function impinging on a function that supplies safety-critical features to the vehicle. Each function can run in its virtual machine, managed by the automotive hypervisor.

While each function’s virtual machine operates in its own space with its allocation of resources, it can still communicate with other functions if required. Since both operate on the same hardware, communication can be facilitated via software rather than requiring additional hardware connectivity between physically separate ECUs. For example, camera video feeds can be more easily routed to the dashboard cockpit display.

When most systems are implemented via software virtualization, new features can be implemented more quickly and delivered remotely via over-the-air updates. Hardware resources can be used flexibly and shared between systems. This can help lower the cost because one piece of computer hardware can do a job previously performed by multiple ECUs. These functions are virtualized and operate side-by-side on shared hardware.

The ability to run multiple virtual machines enables using different Automotive Real-Time Operating Systems simultaneously on one piece of hardware. For example, operating systems capable of mission-critical dependability can run the digital cockpit and ADAS, while others can operate the infotainment. It is even possible to run a familiar consumer operating system and enable the installation of everyday applications and multimedia software. These operating systems could be from different third-party vendors, running side-by-side in separate virtual machines.

Types of Virtualization

Virtualization operates on a stack, starting with the host hardware at the lowest level. There can be two types of hypervisors running on top of this:

  • Type 1 Hypervisors run directly on top of the hardware. Examples include the QNX Hypervisor.
  • Type 2 Hypervisors sit on top of a host operating system. They are also known as hosted hypervisors.

Beyond these base-level distinctions, virtualization can be applied to applications, networking, desktop operating systems, storage, server resources, and data. By running any of these functions in a virtualized environment, they can be delivered in the most flexible way possible. This is why the move to automotive virtualization is so essential. As vehicles become connected and software-defined, flexibility and the room to upgrade features are essential.

The QNX Hypervisor is a real-time, Type 1 hypervisor that offers virtualization technology and enables the secure separation of multiple operating environments on a single SoC. It also facilitates safety regulations defined by the ISO and offers broad design flexibility. 

Check Out Our Other Ultimate Guides

Structural Dependency
Learn about software-defined vehicles, including their benefits and architecture.
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