

#DOWNLOAD HIERARCHY CHART FOR OSX DRIVERS#
Kernel Extension Programming Topics contains a collection of tutorials that introduce you to the development tools and take you through the steps required to create, debug, and package kernel extensions and I/O Kit drivers (a type of kernel extension).
#DOWNLOAD HIERARCHY CHART FOR OSX HOW TO#
IOKit Device Driver Design Guidelines describes the general steps required to design, code, debug, and build a device driver that will be resident in the kernel.Īccessing Hardware From Applications discusses how to use the I/O Kit’s “device interface” feature it also includes information on serial and storage I/O via BSD device files. Apple provides several documents and other sources of information to help you with your efforts: Once you’ve absorbed the information in I/O Kit Fundamentals, you should be able to forge ahead and actually create a device driver. Lists additional sources for information on OS X and related topics. Provides a class hierarchy chart for all I/O Kit classes that are not members of a specific family. It also discusses how drivers should deal with hardware constraints, such as those imposed by DMA engines.Įxplains the concepts of OS X power management and describes different ways drivers can power-manage their devices.Įxplains how to respond to device removal (hot-swapping).ĭisplays a class hierarchy chart for each family and provides family-specific information that might differ from generic I/O Kit information. It includes discussions of object construction and disposal, driver objects as I/O Registry entries, and the driver life cycle.Įxplains the architecture and usage of work loops and event sources, mechanisms that the I/O Kit uses to process events such as interrupts and I/O requests in a protected single-threaded environment.ĭescribes how to use memory cursors, memory descriptors, and related objects to handle I/O transfers. It also summarizes the procedure processes in user space follow to find suitable devices and their drivers.ĭescribes the base classes that each driver object directly or indirectly inherits from. Gives a high-level description of the I/O Kit’s architecture, essential concepts, and basic mechanisms.ĭescribes the I/O Registry, a dynamic database capturing the client/provider relationships among active driver objects.Įxplains the matching process by which the most appropriate client drivers are found for registered providers. It contains the following chapters:ĭescribes the features and benefits of the I/O Kit, and also discusses the philosophy and decisions informing its design. I/O Kit Fundamentals gives a broad, conceptual description of the I/O Kit and device-driver development on OS X.

But it does help you to understand the hows and whys of the I/O Kit, enabling you to obtain the most value from the more specific documentation and examples. It does not, for example, describe the use of the development tools or the use of specific driver programming interfaces. Obviously there are things I/O Kit Fundamentals does not cover. Some chapters contain information useful to both types of developers, and others contain information that is of interest only to writers of kernel-resident drivers. The first type is the developer creating a device driver that is to be resident in the kernel the second type is the application developer who is using an I/O Kit device interface to communicate with hardware. There are two general types of I/O Kit developers, and this document tries to be useful to both. It contains essential background information for anyone wanting to create device drivers for this platform. This document explains the terminology, concepts, architecture, and basic mechanisms of the I/O Kit, Apple’s object-oriented framework for developing device drivers for OS X. Next Introduction to I/O Kit Fundamentals
