Before starting with the QNX Hypervisor, it can be useful to understand the
terminology we use to describe QNX virtual environments, the hypervisor, and its guests, as
well as the nomenclature we use for file names.
Terminology
Please note the following about the terminology used in this guide:
- device
- We use device or to mean a hardware device that exists as a physical
component on the system. Contrast vdev.
- guest
-
A
guest is a guest OS and any applications that are running
on this OS; a qvm process instance (see below)
hosts a guest. The guest runs in a
qvm.
- If we need to make the distinction between the guest OS and the
applications, we spell it out (e.g., To stop an application without
stopping the guest OS ...).
- host
-
In most cases, the
term host refers not to a host computer (the desktop or
laptop, which you can connect to your target system to load a new image or
debug), but to the hypervisor or something in the hypervisor (e.g., the CPU
instructs the guest thread to exit guest mode and continue in host
mode).
- When the context doesn't make the meaning of host clear, we'll use
development host to refer to the laptop or desktop, and
host domain or hypervisor host to indicate the
hypervisor and all its components.
- When discussing privilege or exception levels, we'll use hypervisor
host or hypervisor host domain (e.g., processes
running in the hypervisor host domain sometimes run at EL2 on ARM boards, or
at VMX root mode on x86 boards).
- qvm
-
A
qvm (or qvm process) is a process in the
hypervisor in which a guest OS can run (a virtual machine, or
VM).
- The hypervisor starts a qvm process for each of its
guests. Thus, if in your hypervisor system you have three guests, you will
necessarily have three instances of qvm running in the
hypervisor.
- A qvm process runs at times at the permission level of
the hypervisor host domain (it is part of the hypervisor), and at times at
the lower privilege level of the guest it is hosting.
- vdev
- We use virtual device (or vdev) to mean any device that the
hypervisor virtualizes in some way (see
Devices in this chapter). Examples
of vdevs include an interrupt controller (virtualized), or an Ethernet
device controller (para-virtualized).
- If we ever refer to a virtual device simply as a device, that is confusing
and an error, so let us know about it.
Note: See the
Terminology appendix for a fuller
glossary of terms.
File names
We use the following nomenclature to name the files in a QNX virtualized
environment:
Prefixes
Prefixes identify where a file is used:
- hypervisor
- The file includes or is used to build and/or configure the hypervisor host
domain. The prefix is followed by a release number.
- vdev-
- The file is a virtual device.
Suffixes
Suffixes identify the type of file:
- .build
- The file is a buildfile, for the QNX Hypervisor host domain, or for a QNX
guest.
- For Linux and other non-QNX guests, see the documentation for those types of
OSs.
- .img
- The file is a bootable image. This image can include only the hypervisor
host domain, only a guest, or the host domain and one or more guests.
- .qvmconf
- The file is a configuration file for a VM; it is parsed by a qvm
process instance to assemble the VM.
Examples
The following illustrates how we compose file names:
- Hypervisor build and image files
- Names of buildfiles and image files for the hypervisor host domain are
composed as follows:
hypervisorrelease-board.type,
where release is the hypervisor release,
board is the hardware platform, and
type is the type of file (either
build or img). For example:
hypervisor2.0-broadwell.build and
hypervisor2.0-broadwell.img.
- Guest (QNX) build and image files
- Names of guest buildfiles and images are composed as follows:
guestos.type,
where guestos is the guest OS (e.g.,
qnx70, qnx66,
linux44), and type is the type
of file (either build or img). If
your QNX Hypervisor system will have more than one instance of the same OS,
add a letter to each instance. For example: qnx7a.build
and qnx7b.img.
- Linux and other types of guest OSs use their own nomenclature.
- VM configuration files
- Names of configuration files for the qvm process are
composed as follows: guest.qvmconf,
where guest is the guest OS (e.g.,
qnx70, qnx66,
linux44) that will run in the VM configured by this
file. If your QNX Hypervisor system will have more than one instance of the
same OS, add a letter to each instance; for example:
qnx70a.qvmconf and
qnx70b.qvmconf.