.. _glossary: Glossary of Terms ################# .. glossary:: :sorted: LaaG WaaG Acronyms for Linux and Windows as a Guest VM. ACRN supports a variety of :term:`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. 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. 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. 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 :term:`Target`). ACRN recommends using Ubuntu 18.04 as the OS on your development computer and that is an assumption in our documentation. Guest Guest VM A term used to refer to any :term:`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. 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. Partitioned One of three operation scenarios (partitioned, shared, and hybrid) that ACRN supports. Physical hardware resources are dedicated to individual User VMs. Pre-launched VM A :term:`User VM` launched by the hypervisor before the :term:`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 :term:`Safety VM` for reacting to critical system failures. It cannot take advantage of the Service VM or Device Model services. Post-launched VM A :term:`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. 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 :term:`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 :term:`Pre-launched VM`. A non-:term:`Safety VM` with real-time requirements is a :term:`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. 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 :term:`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 :term:`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.)* VM 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