Reject broken eggs and cherish life .. Find the Chinese document .. Ah, and then scared the eyes of the gold...
Step-by-Step http://www.apple.com.cn/developer/mac/library/documentation/Hardware/Conceptual/WritingDeviceDriver/Introduction/Intro.html
More iOS development related consulting step http://www.apple.com.cn/developer/mac/library/navigation/ios.html
I am paving the way again...
To create/develop an I/O kit Device Driver requires a series of knowledge and skills. For example, you need to know how to package the driver for installation. When you need to participate, you may also need to localize text and images related to the driver or display the dialog box. For another example, You Need To Know How To debug your driver, unless you package the ticket and say that your code can run perfectly.
This document shows the tasks that drivers usually need to complete. It looks likeI/O kit fundamentals (it is recommended that you take a look at it first to help readers have a rough understanding of object-oriented programming, especially for C ++ programming, if you want to develop applications that can access devices, read this article.
Accessing hardware from application, you need to mention that objective-C does not provide I/O kit or BSD APIs. These are c APIs and can be called through the cocoa application .). This document describes the I/O kit architecture and family, event processing, memory, and power management. A collection of driver writing, debugging, testing, and publishing I/O kit device drivers.
Document Structure
"Libkern C ++ runtime"
This article describes how to assign the libern library runtime to the type system and the role of osmetaclass, as well as related technologies such as object creation and destruction, dynamic transformation, object introspection, and binary compatibility.
"Libkern set and container class"
This section describes what is the libkern set and the container class and how to use them. Some code examples show how to use these classes to configure them at runtime.
"Ioservice API"
This chapter provides an overview of the methods and types defined in ioservice. ioservice is the base class of all I/O kit drivers, including matching drivers, sending and receiving notifications, client and supplier message, battery management, terminal processing, and other methods. This chapter is an essential resource for those who want to develop their own I/O kit families or non-family drivers.
"Enabling applications to access hardware"
This chapter discusses how to transmit data between drivers and a user space program, and summarizes some column implementation methods. Next, we also talked about a customized user client. Provides a client architecture preview and points out the factors that will affect the design of the user client. Finally, we will talk about the implementation at both ends of the user client: the sub-classes of iouserclient in the kernel and user space library.
"Kernel-user notification"
This chapter describes how to use the kernel-user center to present a localized dialog box (blocking or non-blocking) to users ), load user space executable programs (including the preference settings panel for specific system preferences), and load precise and localized user interfaces from the resource bundle.
"Show driver localization information"
This section summarizes the well-known steps for internationalizing the kernel extension resource bundle and how to access these localized resources from the user space.
"Debug driver"
A summary of the topics about debugging I/O kit device drivers and related technical information. This article discusses how to debug the driver during Matching and loading, how to set up two machines for debugging, how to use kernel debugging macros and log technology, and how to debug Kernel panic and system suspension.
"Test and release drive"
This article discusses the driving test strategies and provides guidance on packaging and release drivers.