1.. _glossary:
2
3Glossary of Terms
4#################
5
6.. glossary::
7   :sorted:
8
9   LaaG
10   WaaG
11      Acronyms for Linux and Windows as a Guest VM. ACRN supports a
12      variety of :term:`User VM` OS choices. Your choice depends on the
13      needs of your application.  For example, Windows is popular for
14      Human-Machine Interface (HMI) applications in industrial applications,
15      while Linux is a likely OS choice for a VM running an AI application.
16
17   ACPI
18      Advanced Configuration and Power Interface
19
20   ACRN
21      ACRN is a flexible, lightweight reference hypervisor, built with
22      real-time and safety-criticality in mind, optimized to streamline
23      embedded development through an open source platform.
24
25   API
26      Application Program Interface: A defined set of routines and protocols for
27      building application software.
28
29   APL
30      Apollo Lake platform
31
32   BDW
33      Broadwell, Intel 5th-generation CPU platform
34
35   BIOS
36      Basic Input/Output System.
37
38   DM
39   Device Model
40      An application within the Service VM responsible for creating and
41      launching a User VM and then performing device emulation for the devices
42      configured for sharing with that User VM. The Service VM and Device Model
43      can access hardware resources directly through native drivers and provide
44      device sharing services to User VMs. User VMs can access hardware devices
45      directly if they've been configured as passthrough devices.
46
47   Development Computer
48   Host
49      As with most IoT development environments, you configure, compile, and
50      build your application on a separate system from where the application is
51      deployed and run (i.e., the :term:`Target`). ACRN recommends using Ubuntu
52      18.04 as the OS on your development computer and that is an assumption in
53      our documentation.
54
55   Guest
56   Guest VM
57      A term used to refer to any :term:`VM` that runs on the hypervisor.  Both Service
58      and User VMs are considered Guest VMs from the hypervisor's perspective,
59      albeit with different properties. *(You'll find the term Guest used in the
60      names of functions and variables in the ACRN source code.)*
61
62   GVT-d
63      Virtual dedicated graphics acceleration (one VM to one physical GPU).
64
65   Hybrid
66      One of three operation scenarios (partitioned, shared, and hybrid) that ACRN supports.
67      In the hybrid mode, some physical hardware resources can be  partitioned to
68      individual User VMs while others are shared across User VMs.
69
70   IDT
71      Interrupt Descriptor Table: a data structure used by the x86
72      architecture to implement an interrupt vector table. The IDT is used
73      to determine the correct response to interrupts and exceptions.
74
75   ISR
76      Interrupt Service Routine: Also known as an interrupt handler, an ISR
77      is a callback function whose execution is triggered by a hardware
78      interrupt (or software interrupt instructions) and is used to handle
79      high-priority conditions that require interrupting the code that is
80      executing on the processor.
81
82   Passthrough Device
83      Physical I/O devices (typically PCI) exclusively assigned to a User VM so
84      that the VM can access the hardware device directly and with minimal (if any)
85      VM management involvement. Normally, the Service VM owns the hardware
86      devices shared among User VMs and virtualized access is done through
87      Device Model emulation.
88
89   Partitioned
90      One of three operation scenarios (partitioned, shared, and hybrid) that ACRN supports.
91      Physical hardware resources are dedicated to individual User VMs.
92
93   Pre-launched VM
94      A :term:`User VM` launched by the hypervisor before the :term:`Service VM`
95      is started.  Such a User VM runs independently of and is partitioned from
96      the Service VM and other post-launched VMs. It has its own carefully
97      configured and dedicated hardware resources such as CPUs, memory, and I/O
98      devices. Other VMs, including the Service VM, may not even be aware of a
99      pre-launched VM's existence. A pre-launched VM can be used as a
100      special-case :term:`Safety VM` for reacting to critical system failures.
101      It cannot take advantage of the Service VM or Device Model services.
102
103   Post-launched VM
104      A :term:`User VM` configured and launched by the Service VM and typically
105      accessing shared hardware resources managed by the Service VM and Device
106      Model. Most User VMs are post-launched while special-purpose User VMs are
107      pre-launched.
108
109   QEMU
110      Quick EMUlator.  Machine emulator running in user space.
111
112   RDT
113      Intel Resource Director Technology (Intel RDT) provides a set of
114      monitoring and allocation capabilities to control resources such as
115      Cache and Memory. ACRN supports Cache Allocation Technology (CAT) and
116      Memory Bandwidth Allocation (MBA).
117
118   RTVM
119   Real-time VM
120      A :term:`User VM` configured specifically for real-time applications and
121      their performance needs. ACRN supports near bare-metal performance for a
122      post-launched real-time VM by configuring certain key technologies or
123      enabling device-passthrough to avoid common virtualization and
124      device-access overhead issues. Such technologies include: using a
125      passthrough interrupt controller, polling-mode Virtio, Intel RDT
126      allocation features (CAT, MBA), and I/O prioritization.  RTVMs are
127      typically a :term:`Pre-launched VM`.  A non-:term:`Safety VM` with
128      real-time requirements is a :term:`Post-launched VM`.
129
130   Safety VM
131      A special VM with dedicated hardware resources for providing overall
132      system health-monitoring functionality.  A safety VM is always a
133      pre-launched User VM, either in a partitioned or hybrid scenario.
134
135   Scenario
136      A collection of hypervisor and VM configuration settings that define an
137      ACRN-based application's environment. A scenario configuration is stored
138      in a scenario XML file and edited using the ACRN Configurator tool. The
139      scenario configuration, along with the target board configuration, is used
140      by the ACRN build system to modify the source code to build tailored
141      images of the hypervisor and Service VM for the application. ACRN provides
142      example scenarios for shared, partitioned, and hybrid configurations that
143      developers can use to define a scenario configuration appropriate for
144      their own application.
145
146   Security VM
147      A special :term:`User VM` providing software-based security services
148      within a dynamic virtualized environment. Such security services are
149      application dependent and can include antivirus and malware detection,
150      virtualized firewalls, resource monitoring, and more.
151
152   Service VM
153      A special VM, directly launched by the hypervisor. The Service VM can
154      access hardware resources directly by running native drivers and provides
155      device sharing services to post-launched User VMs through the ACRN Device
156      Model (DM). Hardware resources include CPUs, memory, graphics memory, USB
157      devices, disk, and network mediation. *(Historically, the Service VM was
158      called the Service OS or SOS.)*
159
160   Shared
161      One of three operation scenarios (shared, hybrid, partitioned) that ACRN supports.
162      Most of the physical hardware resources are shared across User VMs.
163      *(In releases prior to 2.7, this was called the "Industry" scenario.)*
164
165   Target
166      This is the hardware where the configured ACRN hypervisor and
167      developer-written application (built on the :term:`Development Computer`) is
168      deployed and runs.
169
170   UEFI
171      Unified Extensible Firmare Interface. UEFI replaces the
172      traditional BIOS on PCs, while also providing BIOS emulation for
173      backward compatibility. UEFI can run in 32-bit or 64-bit mode and, more
174      important, support Secure Boot, checking the OS validity to ensure no
175      malware has tampered with the boot process.
176
177   User VM
178      A :term:`VM` where user-defined environments and applications run. User VMs can
179      run different OSes based on their needs, including for example, Ubuntu for
180      an AI application, Windows for a Human-Machine Interface, or a
181      hard real-time control OS such as Zephyr, VxWorks, or RT-Linux for soft or
182      hard real-time control. There are three types of ACRN User VMs: pre-launched,
183      post-launched standard, and post-launched real-time.  *(Historically, a
184      User VM was also called a User OS, or simply UOS.)*
185
186   Virtual Machine
187     A compute resource that uses software instead of physical hardware to run a
188     program. Multiple VMs can run independently on the same physical machine,
189     and with their own OS. A hypervisor uses direct access to the underlying
190     machine to create the software environment for sharing and managing
191     hardware resources.
192
193   VMM
194      Virtual Machine Monitor
195
196   VMX
197      Virtual Machine Extension
198
199   VT
200      Intel Virtualization Technology
201
202   VT-d
203      Virtualization Technology for Directed I/O
204