|Skip Navigation Links|
|Exit Print View|
|Device Driver Tutorial Oracle Solaris 11.1 Information Library|
This Device Driver Tutorial is a hands-on guide that shows you how to develop a simple device driver for the Oracle Solaris Operating System (Oracle Solaris OS). Device Driver Tutorial also explains how device drivers work in the Oracle Solaris OS. This book is a companion to Writing Device Drivers. Writing Device Drivers is a thorough reference document that discusses many types of devices and drivers. Device Driver Tutorial examines complete drivers but does not provide a comprehensive treatment of all driver types. Device Driver Tutorial often points to Writing Device Drivers and other books for further information.
Note - This Oracle Solaris release supports systems that use the SPARC and x86 families of processor architectures. The supported systems appear in the Oracle Solaris OS: Hardware Compatibility Lists. This document cites any implementation differences between the platform types.
In this document, these x86 related terms mean the following:
x86 refers to the larger family of 64-bit and 32-bit x86 compatible products.
x64 relates specifically to 64-bit x86 compatible CPUs.
"32-bit x86" points out specific 32-bit information about x86 based systems.
For supported systems, see the Oracle Solaris OS: Hardware Compatibility Lists.
You should read this tutorial if you need to develop, install, and configure device drivers for the Oracle Solaris OS. You also should read this book if you need to maintain existing drivers or add new functionality to existing Oracle Solaris OS drivers. Information about the kernel provided in this book also will help you troubleshoot any problems you might encounter installing or configuring Oracle Solaris systems.
To write device drivers for the Oracle Solaris OS, you should have the following background:
Be a confident C programmer
Have experience with data structures, especially with linked lists
Understand bit operations
Understand indirect function calls
Understand multithreading (see the Multithreaded Programming Guide)
Be familiar with a UNIX shell
Understand the basics of UNIX system and I/O architecture
The most important information you need to have to write a device driver are the characteristics of the device. Get a detailed specification for the device you want to drive.
Experience with Oracle Solaris OS compilers, debuggers, and other tools will be very helpful to you. You also need to understand where the file system fits with the kernel and the application layer. These topics are discussed in this tutorial.
This book is organized into the following chapters:
Chapter 1, Introduction to Device Drivers provides an overview of the Oracle Solaris Operating System and kernel. This chapter also discusses the driver development environment and tools.
Chapter 2, Template Driver Example shows a simple template driver. This chapter shows in detail the steps to develop, build, install, load, and test this simple driver.
Chapter 3, Reading and Writing Data in Kernel Memory describes how to develop a driver that reads data from and writes data to kernel memory.
Chapter 4, Tips for Developing Device Drivers discusses some common errors in driver development and how to avoid them or handle them. This chapter also introduces driver analysis and debugging tools.
For detailed reference information about the device driver interfaces, see the section 9 man pages. Section 9E, Intro(9E), describes DDI/DKI (Device Driver Interface, Driver-Kernel Interface) driver entry points. Section 9F, Intro(9F), describes DDI/DKI kernel functions. Sections 9P and 9S, Intro(9S), describe DDI/DKI properties and data structures.
For information on other driver-related tools and issues, see these books from Oracle Corporation:
Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.
The following table describes the typographic conventions that are used in this book.
Table P-1 Typographic Conventions
The following table shows UNIX system prompts and superuser prompts for shells that are included in the Oracle Solaris OS. In command examples, the shell prompt indicates whether the command should be executed by a regular user or a user with privileges.
Table P-2 Shell Prompts