Resource managers

A resource manager is a server program that accepts messages from other programs and, optionally, communicates with hardware. All of the QNX Neutrino device drivers and filesystems are implemented as resource managers.

QNX Neutrino resource managers are responsible for presenting an interface to various types of devices. This may involve managing actual hardware devices (such as serial ports, parallel ports, network cards, and disk drives) or virtual devices (such as /dev/null, the network filesystem, and pseudo-ttys).

The binding between the resource manager and the client programs that use the associated resource is done through a flexible mechanism called pathname-space mapping. In pathname-space mapping, an association is made between a pathname and a resource manager. The resource manager sets up this mapping by informing the QNX Neutrino process manager that it's responsible for handling requests at (or below, in the case of filesystems), a certain mountpoint. This allows the process manager to associate services (i.e., functions provided by resource managers) with pathnames.

Once the resource manager has established its pathname prefix, it receives messages whenever any client program tries to do an open(), read(), write() , etc. on that pathname.

For more detailed information on the resource manager concept, see Resource Managers in System Architecture.