Solaris 10 Device Drivers Course Outline

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

In this course, students implement a driver for a simple piece of hardware on Solaris 10. 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 Solaris 10.
• 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 Solaris 10.
• 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 Solaris 10 kernel.

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

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

US $2500 per attendee in open-enrollment courses.

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

To add your name to the Interest List for this course, click here.