I/O|I/O Kit 驱动开发设计指南

Apple官方原文链接 (官方文档已经不再更新,最新的Apple SDK信息请访问Apple开发者文档)
开发一个I/O Kit 设备驱动需要很多的技能,比如说打包安装,语言和图片的国际化处理,需要用户决策时弹框提示,还有除非你能一次搞定,不然你还需要学习如何调试你的驱动程序。
如果你是要开发在OS X系统上运行的驱动程序,你需要阅读学习本文档。本文档假定你熟悉基本I / O Kit概念和术语,因此先阅读 IOKit Fundamentals是个好主意。它也有助于熟悉面向对象的编程,特别是C ++编程。
如果你要开发连接设备的应用,那么你应该去阅读Accessing Hardware From Applications。如果你觉得这份文档也对你有帮助,请注意一点,OC不提供I/O Kit 或者是BSD APIs。不过这些接口是C的APIs,你可以通过Cocoa 应用调用。
文档结构(I/O Kit 设备驱动指南有以下章节)
1、Organization of This Document
【I/O|I/O Kit 驱动开发设计指南】主要描述了 libkern
2、libkern Collection and Container Classes
描述 libkern
3、The IOService API
概述了 所有I/O Kit 驱动的基类 IOService的定义和用法。包含了驱动程序的匹配,发送和接收通知,客户端和驱动的通信,电源管理,内存映射和中断处理方法的说明。本章是开发者开发自己I/O Kit系列驱动的必读材料。
4、Making Hardware Accessible to Applications
开始讨论驱动和用户层应用间的关联和数据传递。
5、Kernel-User Notification
描述你该如何使用Kernel-User Notification Center。
6、Debugging Drivers
用于调试I / O Kit设备驱动程序的一系列技巧和技巧。
7、Testing and Deploying Drivers
讨论了驱动程序测试的策略,并提供了有关打包和部署设备驱动程序的指导。。
8、Developing a Device Driver to Run on an Intel-Based Macintosh
提供有关开发内核中设备驱动程序的提示,以便在基于PowerPC或基于Intel的Macintosh计算机中运行。
9、Document Revision History
本文档更新的历史记录列表。
10、Glossary
定义本文档中使用的关键术语。


也可以看看
除了I / O Kit设备驱动程序设计指南之外,Apple开发人员文档还包括几个涵盖OS X内核,一般I / O Kit以及特定设备驱动程序开发的文档。其中一些文件列在下面。
内核编程指南高级描述了OS X核心操作系统的架构和设施,包括Mach,BSD,虚拟文件??系统,网络,虚拟内存和内核服务。此外,它还讨论了内核程序员感兴趣的主题,例如性能,安全性和编码约定。
IOKit Fundamentals描述了I / O Kit的功能,体系结构,类和一般机制,包括驱动程序匹配和加载,事件处理,内存管理和电源管理的讨论。
内核扩展编程主题包含一系列教程,向您介绍开发工具,并指导您完成创建,调试和打包内核扩展和I / O Kit驱动程序所需的步骤。它还包括有关内核扩展的其他方面的信息。
硬件和驱动程序参考库中提供了有关为特定设备系列编写驱动程序的深入信息的文档。
除了这些Apple出版物之外,您还可以浏览BSD手册页以获取有关BSD和POSIX API的更多信息。您可以通过在终端窗口(例如,man gdb)中键入manfunction_name或在OS X Man Pages中键入HTML来查看BSD和POSIX函数和工具的文档。
当然,您始终可以浏览I / O Kit附带的头文件,这些头文件安装在Kernel.framework / Headers / iokit(内核驻留)和IOKit.framework / Headers(用户空间)中。
您还可以在Xcode中查看开发人员文档。为此,请从Xcode菜单中选择“帮助”,然后单击“显示文档窗口”。
如果您准备创建设备驱动程序的通用二进制版本以在基于Intel的Macintosh中运行,请参阅通用二进制编程指南,第二版。通用二进制编程指南描述了Intel和PowerPC体系结构之间的差异,并提供了开发通用二进制文件的技巧。
Apple维护着几个网站,开发人员可以在这些网站上获取有关Darwin和OS X的一般信息和技术信
Darwin开源网站(http://developer.apple.com/darwin/)包含Darwin和Apple维护的其他开源项目的信息和资源。
Apple Developer Connection:OS X(http://developer.apple.com/devcenter/mac)提供SDK,发行说明,产品说明和新闻以及与OS X相关的其他资源和信息。
AppleCare支持网站(http://www.apple.com/support)提供搜索功能,使您可以找到有关OS X和其他领域的技术文章,手册,规范和讨论。

    推荐阅读