A note about nomenclature

Before starting to work with the QHS or other 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).
hypervisor
For simplicity, we may use the terms QNX hypervisor or hypervisor to refer to both the QHS and the QNX Hypervisor. If you are using the QHS, see the QNX Hypervisor for Safety chapter and the QNX Hypervisor for Safety 2.0 Safety Manual.
qvm
A qvm (or qvm process) is a process in the hypervisor that hosts guests.
The hypervisor starts qvm process instances; each qvm process instance presents a virtual machine (VM) in which a guest can run.
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.
VM
A virtual machine or VM is presented by a qvm process instance to a guest, which runs in the VM; the VM hosts the guest.
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.

Infixes

Infixes identify a component variant:

-safety
The hypervisor or supporting component may be used in a system that will require safety certification.

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 may 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-fooboard.build and hypervisor2.0-fooboard.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 OS use their own nomenclature.
QHS components
If a hypervisor component or a supporting component has a safety-certified variant and a garden-variety variant, the safety variant includes the -safety infix. For example: smmuman-safety.so and vdev-foo-safety.so.
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., qos21, qnx70, 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.