Glossary of Terms¶
Acronyms for Android, 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.
Advanced Configuration and Power Interface
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.
Application Program Interface: A defined set of routines and protocols for building application software.
Apollo Lake platform
Broadwell, Intel 5th-generation CPU platform
Basic Input/Output System.
- Development Computer¶
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.
- 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 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.)
Virtual dedicated graphics acceleration (one VM to one physical GPU).
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.
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.
One of three operation scenarios (shared, hybrid, partitioned) that ACRN supports. Most of the physical hardware resources are shared across User VMs. (Industry scenario is being renamed to Shared in the v2.7 release.)
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 currently executing on the processor.
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.
Quick EMUlator. Machine emulator running in user space.
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).
- 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.
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.
- Service OS¶
- 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. You may still see these terms used in the code and API interfaces.)
This is the hardware where the configured ACRN hypervisor and developer-written application (built on the Development Computer) is deployed and runs.
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 OS¶
- 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, Android or 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. You may still see these other terms used in the code and API interfaces.)
- 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.
Virtual Machine Monitor
Virtual Machine Extension
Intel Virtualization Technology
Virtualization Technology for Directed I/O