Introduction to Network Device Driver Programming Guide
Network Device Driver Programming Guide is an introduction to developing network device drivers, and a companion to the source code available in the Darwin Projects Directory, http://www.opensource.apple.com/darwinsource/Current. You will find this document most useful if you examine a sample network driver as you read it. This document will refer to the AppleUSBCDCDriver. Code for this driver can be found at http://www.opensource.apple.com/darwinsource/tarballs/apsl/AppleUSBCDCDriver-314.4.1.tar.gz.
This book assumes some familiarity with programming the OS X kernel and the I/O Kit. For a broad overview of the OS X kernel see Kernel Programming. If you need more information about the I/O kit, please read Writing an I/O Kit Device Driver and I/O Kit Fundamentals.
Who Should Read This Document?
Network Device Driver Programming Guide is intended for anyone who wants to develop network drivers for OS X.
Information on the Web
Apple maintains several websites where developers can go for general and technical information on OS X.
Darwin Projects Directory—Open source drivers for use with Darwin (http://www.opensource.apple.com/darwinsource/Current/)
Apple Developer Connection—Developer Documentation (http://developer.apple.com/documentation). Features the same documentation that is installed on OS X, except that often the documentation is more up-to-date. Also includes legacy documentation.
AppleCare Knowledge Base (http://www.apple.com/support). Contains technical articles, tutorials, FAQs, technical notes, and other information.
Apple Developer Connection—OS X (http://developer.apple.com/devcenter/macosx). Offers SDKs, release notes, product notes and reviews, and other resources and information related to OS X.