MAC OS X 设备驱动开发翻译(I/O Kit Device Driver Design Guidlines) (一)
2012-06-19 11:30
471 查看
拒绝蛋碎,珍爱生命。。找到中文文档了。。哎,又闪吓了俺滴氪金之眼。。。
移步http://www.apple.com.cn/developer/mac/library/documentation/Hardware/Conceptual/WritingDeviceDriver/Introduction/Intro.html
更多IOS开发相关咨询移步http://www.apple.com.cn/developer/mac/library/navigation/ios.html
俺又铺路了。。。
要创建/开发一个I/O Kit设备驱动需要一系列知识以及技巧。例如,你需要知道如何打包供安装的驱动。当需要用户参与时,你可能还需要本地化与驱动或者显示对话框相关的文本以及图片。再比如,你需要知道如何调试你的驱动,除非你打包票说你的代码可以完美的运行。
这个文档向我们展示了各种驱动编写者通常需要完成的任务。看起来就像是 I/O Kit Fundamentals(建议读者先看下,可以帮助读者对面向对象编程有一个大概了解,尤其是对C++编程,要是你想要开发能够访问设备的应用,你可以阅读一下
Accessing Hardware From Application, 需要提一下,Objective-C并不提供 I/O Kit或者 BSD的API接口,这些都是C的API,可以通过Cocoa应用调用它们。)的后续篇。本文档主要描述了I/O Kit 的架构以及家族,事件处理,以及内存,电源管理。集合了编写驱动,调试,测试以及发布I/O Kit设备驱动。
文档结构
“libkern C++ 运行时”
讲述了libern库的运行时赋予类型系统以及OSMetaClass在其中的角色,以及对象的创建与销毁,动态转型,对象自省以及二进制兼容的相关技术。
“libkern 集合以及容器类”
讲述了什么是libkern集合以及容器类以及如何使用它们。有一些代码示例,向我们展示了如何使用这些类以让其在运行时进行配置
“IOService API”
本章提供了在定义在IOService中的方法以及类型定义的一个概览, IOService是所有I/O Kit驱动的基类,包括对驱动匹配,发送以及接收通知,客户端以及供应商消息,电池管理以及终端处理等方法的描述。本章对于那些要开发它们自己的I/O Kit家族或者非非家族驱动的人来说是必不可少的资源。
“让应用能够访问硬件”
本章开始探讨有关在驱动以及一个用户空间程序之间传输数据的问题,并总结了一些列实现方式。接着还讲了一种方式:定制化的用户客户端。提供了一种客户端架构预览,并指出了会影响用户客户端设计的因素。最后,讲到了用户客户端两端的实现:在内核以及用户空间库中的IOUserClient的子类。
“内核-用户 通知”
本章讲述了如何使用内核-用户中心来向用户呈现本地化的对话框(阻塞式或者非阻塞式),加载用户空间可执行程序(包括特定的系统偏好设置的偏好设置面板),以及从资源束中加载精确的,本地化的用户界面用户界面。
“显示关于驱动的本地化信息”
总结了我们所熟知的内核扩展的资源束国际化的步骤以及如何从用户空间访问这些本地化的资源。
“调试驱动”
关于调试 I/O Kit设备驱动的话题以及技术相关信息的大汇总。探讨了如何在匹配以及加载阶段调试驱动,如何设置两台机器调试,如何使用内核调试宏,日志技术,以及调试内核恐慌和系统挂起。
“测试以及发布驱动”
探讨了驱动测试的策略并提供了一些打包以及发布驱动的指导。
移步http://www.apple.com.cn/developer/mac/library/documentation/Hardware/Conceptual/WritingDeviceDriver/Introduction/Intro.html
更多IOS开发相关咨询移步http://www.apple.com.cn/developer/mac/library/navigation/ios.html
俺又铺路了。。。
要创建/开发一个I/O Kit设备驱动需要一系列知识以及技巧。例如,你需要知道如何打包供安装的驱动。当需要用户参与时,你可能还需要本地化与驱动或者显示对话框相关的文本以及图片。再比如,你需要知道如何调试你的驱动,除非你打包票说你的代码可以完美的运行。
这个文档向我们展示了各种驱动编写者通常需要完成的任务。看起来就像是 I/O Kit Fundamentals(建议读者先看下,可以帮助读者对面向对象编程有一个大概了解,尤其是对C++编程,要是你想要开发能够访问设备的应用,你可以阅读一下
Accessing Hardware From Application, 需要提一下,Objective-C并不提供 I/O Kit或者 BSD的API接口,这些都是C的API,可以通过Cocoa应用调用它们。)的后续篇。本文档主要描述了I/O Kit 的架构以及家族,事件处理,以及内存,电源管理。集合了编写驱动,调试,测试以及发布I/O Kit设备驱动。
文档结构
“libkern C++ 运行时”
讲述了libern库的运行时赋予类型系统以及OSMetaClass在其中的角色,以及对象的创建与销毁,动态转型,对象自省以及二进制兼容的相关技术。
“libkern 集合以及容器类”
讲述了什么是libkern集合以及容器类以及如何使用它们。有一些代码示例,向我们展示了如何使用这些类以让其在运行时进行配置
“IOService API”
本章提供了在定义在IOService中的方法以及类型定义的一个概览, IOService是所有I/O Kit驱动的基类,包括对驱动匹配,发送以及接收通知,客户端以及供应商消息,电池管理以及终端处理等方法的描述。本章对于那些要开发它们自己的I/O Kit家族或者非非家族驱动的人来说是必不可少的资源。
“让应用能够访问硬件”
本章开始探讨有关在驱动以及一个用户空间程序之间传输数据的问题,并总结了一些列实现方式。接着还讲了一种方式:定制化的用户客户端。提供了一种客户端架构预览,并指出了会影响用户客户端设计的因素。最后,讲到了用户客户端两端的实现:在内核以及用户空间库中的IOUserClient的子类。
“内核-用户 通知”
本章讲述了如何使用内核-用户中心来向用户呈现本地化的对话框(阻塞式或者非阻塞式),加载用户空间可执行程序(包括特定的系统偏好设置的偏好设置面板),以及从资源束中加载精确的,本地化的用户界面用户界面。
“显示关于驱动的本地化信息”
总结了我们所熟知的内核扩展的资源束国际化的步骤以及如何从用户空间访问这些本地化的资源。
“调试驱动”
关于调试 I/O Kit设备驱动的话题以及技术相关信息的大汇总。探讨了如何在匹配以及加载阶段调试驱动,如何设置两台机器调试,如何使用内核调试宏,日志技术,以及调试内核恐慌和系统挂起。
“测试以及发布驱动”
探讨了驱动测试的策略并提供了一些打包以及发布驱动的指导。
相关文章推荐
- MAC OS X 设备驱动开发翻译(I/O Kit Device Driver Design Guidlines) (二)libkern C++运行时 【本文档终结翻译】
- VxWorks设备驱动开发指南(二)--VxBus And VxBus Device Driver
- 设备驱动模型之device-driver
- linux驱动开发之——device与driver关系趣谈
- Visual studio 2015 community + Windows Driver Kit 10 +Vmware 11 配置驱动开发环境
- linux ------ 设备驱动模型之二(bus, device, driver)
- platform_device 和 platform_driver(平台设备和平台驱动)
- [中英对照]Device Drivers in User Space: A Case for Network Device Driver | 用户态设备驱动: 以网卡驱动为例
- Linux驱动开发之Platform_device和Platform_driver
- linux平台设备驱动架构详解 Linux Platform Device and Driver
- linux下设备device_register和驱动driver_register先后注册的影响和关系
- linux平台设备驱动架构详解 Linux Platform Device and Driver
- PlatformBuilder 文档中关于“如何开发设备驱动”的翻译
- 驱动开发利器Microsoft Windows Driver Kit 7.1.0下载
- Linux设备模型(总线、设备、驱动程序和类)之三:device_driver && 多厂家驱动自动识别
- linux内核组件之---设备驱动模型之device-driver
- 通过adb与python结合创建的设备驱动脚本deviceDriver.py
- platform_device(平台设备)和platform_driver(平台驱动)及平台设备驱动工作原理
- Linux设备模型中三个很重要的概念: 总线,设备,驱动.即bus,device,driver