Summary

In this chapter, we have looked at the following:

  • How the system loads I/O Kit kernel extensions automatically and how to manually load other types of KEXTs (such as Network Kernel Extensions) that are not loaded automatically. The latter is usually achieved using a Launch Daemon.
  • Versioning the interface between a KEXT and user space is important in order to avoid breaking older/newer applications that run against it. One strategy to deal with this is to include a version number in a shared header file.
  • Quality assurance and testing is an important part of the development cycle and is the last point of defense before software is distributed to a customer. It is important to properly test all aspects and usage patterns of the software ...

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.