Previous versions of Mac OS had only one kind of operating-system interface, an application programming interface (API). This meant that all Mac OS services were available to all varieties of Macintosh software. With the introduction of Power Macintosh computers with the PCI bus, Apple starts distinguishing between APIs and driver services. The distinction must be made because programming contexts are becoming increasingly specialized as Mac OS evolves.
In the native driver model, Toolbox services (for example, the ModalDialog function and Menu Manager calls) are not available to drivers. Drivers operate outside the user interface and the application software environment.
The Device Manager presents an API for generic drivers, as described in Generic and Family Drivers.
Family services required by device drivers are provided by family experts, using family libraries. These services are also not available to applications.
The separation of application and driver services in Mac OS is a big change that starts with the Power Macintosh computers with the PCI bus architecture. The difference between the old API model and the new API/driver services model is diagrammed in Figure 6-1.
To help ensure compatibility with future releases of the Mac OS, native drivers should not use Mac OS Toolbox APIs. However, there may be instances where use of such calls is difficult to avoid, but native drivers using Toolbox calls may not work in the future. An example of using the new native driver APIs as opposed to the Toolbox APIs would be to use the Name Registry functions to store device configuration information rather than the Resource Manager. See Driver Migration and Device Configuration for additional information.