Versioning Kernel Extensions

If your kernel extension is directly accessible to a user–space application, you may wish to provide a versioning system to prevent an older user–space application from accessing a newer kernel extension or vice versa. This is not necessary, for say, audio drivers or other drivers that use a system–supplied IOUserClient; however, in the case that it does not, your KEXT will essentially present an API to the application, which needs to be remain compatible. If the KEXT has been updated, an older application may break or even cause a crash. There is no standardized way to deal with this issue, and the solution is largely dependent on the nature of the KEXT and the applications that access it. One strategy is to include ...

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.