Important

This is the latest documentation for the unstable development branch of Project ACRN (master).
Use the drop-down menu on the left to select documentation for a stable release such as v3.2 or v3.0.

Glossary of Terms

ACPI

Advanced Configuration and Power Interface

ACRN

ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind, optimized to streamline embedded development through an open source platform.

API

Application Program Interface: A defined set of routines and protocols for building application software.

APL

Apollo Lake platform

BDW

Broadwell, Intel 5th-generation CPU platform

BIOS

Basic Input/Output System.

Development Computer
Host

As with most IoT development environments, you configure, compile, and build your application on a separate system from where the application is deployed and run (i.e., the Target). ACRN recommends using Ubuntu 18.04 as the OS on your development computer and that is an assumption in our documentation.

DM
Device Model

An application within the Service VM responsible for creating and launching a User VM and then performing device emulation for the devices configured for sharing with that User VM. The Service VM and Device Model can access hardware resources directly through native drivers and provide device sharing services to User VMs. User VMs can access hardware devices directly if they’ve been configured as passthrough devices.

Guest
Guest VM

A term used to refer to any VM that runs on the hypervisor. Both Service and User VMs are considered Guest VMs from the hypervisor’s perspective, albeit with different properties. (You’ll find the term Guest used in the names of functions and variables in the ACRN source code.)

GVT-d

Virtual dedicated graphics acceleration (one VM to one physical GPU).

Hybrid

One of three operation scenarios (partitioned, shared, and hybrid) that ACRN supports. In the hybrid mode, some physical hardware resources can be partitioned to individual User VMs while others are shared across User VMs.

IDT

Interrupt Descriptor Table: a data structure used by the x86 architecture to implement an interrupt vector table. The IDT is used to determine the correct response to interrupts and exceptions.

ISR

Interrupt Service Routine: Also known as an interrupt handler, an ISR is a callback function whose execution is triggered by a hardware interrupt (or software interrupt instructions) and is used to handle high-priority conditions that require interrupting the code that is executing on the processor.

LaaG
WaaG

Acronyms for Linux and Windows as a Guest VM. ACRN supports a variety of User VM OS choices. Your choice depends on the needs of your application. For example, Windows is popular for Human-Machine Interface (HMI) applications in industrial applications, while Linux is a likely OS choice for a VM running an AI application.

Partitioned

One of three operation scenarios (partitioned, shared, and hybrid) that ACRN supports. Physical hardware resources are dedicated to individual User VMs.

Passthrough Device

Physical I/O devices (typically PCI) exclusively assigned to a User VM so that the VM can access the hardware device directly and with minimal (if any) VM management involvement. Normally, the Service VM owns the hardware devices shared among User VMs and virtualized access is done through Device Model emulation.

Post-launched VM

A User VM configured and launched by the Service VM and typically accessing shared hardware resources managed by the Service VM and Device Model. Most User VMs are post-launched while special-purpose User VMs are pre-launched.

Pre-launched VM

A User VM launched by the hypervisor before the Service VM is started. Such a User VM runs independently of and is partitioned from the Service VM and other post-launched VMs. It has its own carefully configured and dedicated hardware resources such as CPUs, memory, and I/O devices. Other VMs, including the Service VM, may not even be aware of a pre-launched VM’s existence. A pre-launched VM can be used as a special-case Safety VM for reacting to critical system failures. It cannot take advantage of the Service VM or Device Model services.

QEMU

Quick EMUlator. Machine emulator running in user space.

RDT

Intel Resource Director Technology (Intel RDT) provides a set of monitoring and allocation capabilities to control resources such as Cache and Memory. ACRN supports Cache Allocation Technology (CAT) and Memory Bandwidth Allocation (MBA).

RTVM
Real-time VM

A User VM configured specifically for real-time applications and their performance needs. ACRN supports near bare-metal performance for a post-launched real-time VM by configuring certain key technologies or enabling device-passthrough to avoid common virtualization and device-access overhead issues. Such technologies include: using a passthrough interrupt controller, polling-mode Virtio, Intel RDT allocation features (CAT, MBA), and I/O prioritization. RTVMs are typically a Pre-launched VM. A non-Safety VM with real-time requirements is a Post-launched VM.

Safety VM

A special VM with dedicated hardware resources for providing overall system health-monitoring functionality. A safety VM is always a pre-launched User VM, either in a partitioned or hybrid scenario.

Scenario

A collection of hypervisor and VM configuration settings that define an ACRN-based application’s environment. A scenario configuration is stored in a scenario XML file and edited using the ACRN Configurator tool. The scenario configuration, along with the target board configuration, is used by the ACRN build system to modify the source code to build tailored images of the hypervisor and Service VM for the application. ACRN provides example scenarios for shared, partitioned, and hybrid configurations that developers can use to define a scenario configuration appropriate for their own application.

Security VM

A special User VM providing software-based security services within a dynamic virtualized environment. Such security services are application dependent and can include antivirus and malware detection, virtualized firewalls, resource monitoring, and more.

Service VM

A special VM, directly launched by the hypervisor. The Service VM can access hardware resources directly by running native drivers and provides device sharing services to post-launched User VMs through the ACRN Device Model (DM). Hardware resources include CPUs, memory, graphics memory, USB devices, disk, and network mediation. (Historically, the Service VM was called the Service OS or SOS.)

Shared

One of three operation scenarios (shared, hybrid, partitioned) that ACRN supports. Most of the physical hardware resources are shared across User VMs. (In releases prior to 2.7, this was called the “Industry” scenario.)

Target

This is the hardware where the configured ACRN hypervisor and developer-written application (built on the Development Computer) is deployed and runs.

UEFI

Unified Extensible Firmare Interface. UEFI replaces the traditional BIOS on PCs, while also providing BIOS emulation for backward compatibility. UEFI can run in 32-bit or 64-bit mode and, more important, support Secure Boot, checking the OS validity to ensure no malware has tampered with the boot process.

User VM

A VM where user-defined environments and applications run. User VMs can run different OSes based on their needs, including for example, Ubuntu for an AI application, Windows for a Human-Machine Interface, or a hard real-time control OS such as Zephyr, VxWorks, or RT-Linux for soft or hard real-time control. There are three types of ACRN User VMs: pre-launched, post-launched standard, and post-launched real-time. (Historically, a User VM was also called a User OS, or simply UOS.)

Virtual Machine

A compute resource that uses software instead of physical hardware to run a program. Multiple VMs can run independently on the same physical machine, and with their own OS. A hypervisor uses direct access to the underlying machine to create the software environment for sharing and managing hardware resources.

VMM

Virtual Machine Monitor

VMX

Virtual Machine Extension

VT

Intel Virtualization Technology

VT-d

Virtualization Technology for Directed I/O