Families are groups or categories of devices that provide similar or the same functionality and have the same basic software interface requirements. An example of a device family is the set of devices that provide networking services to the system. These devices are not the same--for example, Ethernet is not the same as LocalTalk--but they all run within the Open Transport family and use the Open Transport libraries to augment the driver services provided by Mac OS. A second example of a device family is the set of all display devices. The concept of device family is critical to the native driver model because it allows the needs of each device family to be met independently of the needs of other families.
Mac OS provides built-in support for device families such as the display family and the network family. Each of these device families has access to services that isolate system and application software from particular device characteristics. For example, the Display Manager provides a uniform programming interface--a family programming interface (FPI)--for display devices regardless of their physical form. Similarly, the Open Transport subsystem isolates the remainder of the system and applications from the particular characteristics of network devices. These FPIs are provided by family libraries in Mac OS.
The Display Manager and video drivers illustrate how a family of devices can provide and utilize family-specific services. These services are complementary to the services provided by the system software, because they are used by the family but are not duplicated by the system and are not available to other components of the system or to Macintosh applications. For a fuller discussion, see Graphics Drivers.
A family expert such as the Open Transport expert interrogates the Name Registry for devices of a certain service category, verifying only that they are of the right category. For example, a software loopback virtual device could appear in the Name Registry, the driver for which would take data from a source and return it back to the same source. To install a loop-back Name Registry entry, the loopback configuration software would call the Name Registry to create an entry and to add the driver descriptor property with its driver information containing the appropriate service category. In networking, the service category for a loopback device is 'otan'. Installing the loopback entry would be the work of a low-level expert for loopback devices. The family expert for Open Transport would locate the loopback entry using Registry calls, and it would initialize the driver in the Open Transport subsystem using family-specific initialization mechanisms.