| Updated: January 28, 2026 |
This chapter presents the virtual devices (vdevs) delivered with QNX hypervisors, and describes how to configure these vdevs.
If you are using the QHS to implement a system that will be certified to a safety standard, you must use the safety-certified vdev shared objects, which contain the -safety suffix in their filenames (e.g., vdev-foo-safety.so). For information about what a qvm process considers to be a vdev safety variant, see the safety option reference.
The shared object name doesn't affect the configuration syntax or semantics. For example, assuming that such vdevs existed, you would specify the options for vdev-foo.so and vdev-foo-safety.so in the same way. It might be, however, that the safety-variant of a vdev implements restrictions or additional functionality not present in the non-safety variant. These changes might affect the safety vdev's configuration options.
An implicit vdev is a vdev that is in the qvm process code, so it is present even if you don't specify it. You need to specify this vdev only if you want to use non-default values for its options. Implicit vdevs are marked as such in the individual vdev descriptions in this chapter.
vdev name
vdev timer8254
intr myioapic:0
If you specify the same vdev more than once in a VM configuration, the shared object (vdev-*.so) file that implements the vdev is still loaded by the associated qvm process instance only once. In this case, then, the shared object must manage as many distinct device instances as the guest will need to access for its purposes, just as you would have to connect multiple hardware devices of the same type to support multiple use cases by an OS in a non-virtualized system.
To manage multiple device instances, the vdev must arrange its data to avoid interference between the instances. For information on doing so, refer to the vdev_s and vdev_factory entries in the Virtual Device Developer's API Reference.