Writing I/O Kit Families

Until now we have looked at how to implement various forms of drivers, most of which interact with one or more family. In some circumstances, you may want to implement a family instead of a driver—for example, if you need to support a new bus technology or have a family of hardware devices that all depend on the same infrastructure or general services. A family can be characterized and differentiated from a driver by the following traits:

  • A family usually consists of more than one IOService classes bundled together in a KEXT providing related services.
  • A family can be thought of as the kernel analog of a user space shared library.
  • A driver has a dependency on a family, not the other way around.
  • A family is not loaded ...

Get OS X and iOS Kernel Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.