OpenSolaris Device Drivers Course Outline

Class Summary
Format: Lecture 30%, Lab Work 70%
Duration: 5 days

Overview
In this course, students implement a driver for a simple piece of hardware on OpenSolaris. Students can test their drivers on both SPARC and Solaris X86. The course uses OpenSolaris to examine source code of existing drivers. The course covers various types of devices and their drivers, including storage, network, USB, pseudo, and nexus drivers.

Course Objectives
Write, install, test, and debug device drivers on OpenSolaris.
Identify and use Solaris 10 driver frameworks and APIs.
Describe implemention of storage device drivers, network interface card drivers, USB device drivers, and pseudo devices on OpenSolaris.
Use hardware documentation to access status and control information of a device.
Transfer data between a device and an application.
Use debugging tools and techniques within the OpenSolaris kernel.

Intended Audience
This course is designed for system programmers and developers who need to implement, debug, and/or support device drivers on Solaris.

Prerequisite
Knowledge of the C programming language. Some knowledge of Operating System concepts is a plus.


Course Outline
Module 1: Device Driver Overview
Purpose
The device tree and system I/O architecture
User level and kernel level access of devices
The Solaris DDI/DKI
Module 2: Autoconfiguration and Loading
Driver routines and data structures used to link and configure a driver for a device.
Module 3: An Example Driver
A complete driver for a pseudo device.
Module 4: Building, Installation, and Testing
Compilers and tools
Module 5: Debugging
Tools - mdb/kmdb/dtrace
Techniques and strategies
Module 6: Hardware
Registers
Interrupts
Operation
Module 7: USB Device Drivers
The USB Framework
An example driver
Module 8: Storage Device Drivers
The SCSA Framework
Host Bus Adapter drivers
Target drivers
Module 9: Network Device Drivers
The GLD Framework
STREAMS
TCP/IP

To add your name to the Interest List for this course, send email to max@bruningsystems.com