Canada IT Courses
ExitCertified US




ExitCertified - Excellence in IT Certified Education
 
IT education classes
IT training feature sheet
 
   
 
start > courses and registration > training feature sheet
Writing Device Drivers for the Solaris Operating Environment :: [SI-375]
 
 
 
 
sun microsystems certified training   this course works with savings passes
 
code. SI-375   length. 5 days
type. Instructor-Led   partner. Sun Microsystems
price.
$2,495 :: $2,121 GSA GOV.
 
 
The Writing Device Drivers for the Solaris Operating Environment course provides students with the knowledge and techniques necessary to write device drivers for the Solaris Operating Environment (Solaris OE). This course covers kernel topics related to driver development, driver design methodology, debugging, and the kernel support routines available to the driver writer. Various types of drivers are investigated including block drivers, character drivers, STREAMS drivers, drivers for Small Computer System Interface (SCSI) devices, and drivers for SCSI host bus adapters. Students examine and use a random access memory (RAM) disk for the block interface, write their own STREAMS module, and create the various routines of a regular character driver. Device-dependent topics are not covered.
 
course schedule  
 
There are currently no scheduled dates for this course. If you are interested in this course, request a course date with the links below.
   
Request course date Request on site training
 
who can benefit
 
 
Students who can benefit from this course are UNIX programmers who need to write device drivers in the Solaris OE.
 
prerequisites
 
 
To succeed fully in this course, students should be able to:

Write correct C programs and evaluate a=(int(*)())b
Use the C, Bourne, or Korn shell
Navigate the Solaris OE file system
Edit text files using vi or the OpenWindows or Common Desktop Environment (CDE) text editors
Enumerate the basic functions of the operating system
Define the use of the file, vnode, and inode structures in the system
Use the Solaris OE or UNIX system calls, particularly the I/O calls
Enumerate the differences between a system call and a library call
Use the Solaris OE development tools, such as make and cc


 
skills gained
 
 
Upon completion of this course, students should be able to:

Explain the purpose of the Device Driver Interface/Driver-Kernel Interface (DDI/DKI)
Determine how many devices can be connected to a SCSI-1, SCSI-2, and SCSI-3 bus
List the structures and system calls used in Streams
Understand different dynamic reconfiguration scenarios
Describe the architecture of the Solaris OE Power Management framework and its role in dynamic reconfiguration
Compile kernel code


 
related courses, exams and materials
 
 


  before related training and products


 
course content details  
 


  Module 1 - Hardware Overview

Explain how multiprocessor architectures differ
Describe the impact of the processor, memory model, and bus differences on the operating system
Describe the different logical address spaces used on a workstation running the Solaris OE and how they relate to the physical address space
Describe how the memory management unit translates addresses
Explain how I/O cache, burst transfers, and DMA work




  Module 2 - The Solaris OE Kernel and Device Tree

Explain the difference between kernel and user address spaces
Explain the purpose of the Device Driver Interface/Driver-Kernel Interface (DDI/DKI)
Describe the creation and role of the device tree in the kernel for the Solaris OE




  Module 3 - Overview of the Solaris OE Device Drivers

Describe how system calls invoke driver functions
List the system structures that drivers use to define their entry points
Explain how these system structures interconnect, and which structures can be examined by the driver
Describe the difference between a character device and a block device
Describe the differences between memory mapped, DMA, and programmed I/O devices




  Module 4 - Multithreading

Explain how the multithreaded environment is used to protect data
Explain what is needed to enable a thread to wait for an event
Describe two synchronization objects supported by the Solaris OE




  Module 5 - Properties

Understand the concept and handling of device properties
Describe the routines that are used to dynamically change properties
Describe the device driver function that handles properties




  Module 6 - Debugging

Describe how to prepare a system for debugging
List the tools and commands used to debug kernel code in the Solaris OE
Describe basic ways of debugging device drivers




  Module 7 - Autoconfiguration

Explain the purpose of the hardware configuration file
List the structures used to make a driver loadable, and understand how to initialize these structures
Explain the purpose of the _init(9E), _info(9E), and _fini(9E) routines
Describe the device driver autoconfiguration routines
List the entry points for device configuration
Describe how to compile and load a loadable driver




  Module 8 - Device Programmed I/O

Understand how to map device registers for device-independent access
Understand and handle basic side effects and constraints of programmed I/O (PIO)
Describe the issues that must be addressed to ensure driver portability




  Module 9 - Interrupts

Describe how the interrupt routine operates
Describe priority inheritance and how it affects critical sections of non-interrupt code
Describe the interrupt levels and describe how they are processed
Understand the significance of interrupt levels under the Solaris OE architecture
Describe the top and bottom halves of a driver and describe how they are synchronized




  Module 10 - Direct Memory Access

Name the three types of DMA
Describe the main features of the DDI DMA model
Describe the DMA data structure used by the driver
Name the three software components of the DMA model
Explain how system resources are allocated for DMA
Describe a DMA Window




  Module 11 - Block Drivers

Describe the routines composing a block driver and indicate where they are initialized
Describe the key data structure in a block driver
Describe how to check user credentials
Describe how transfer parameters are passed to a block driver
Explain the purpose of the xxstrategy() routine
Describe the use of buffer mapping routines




  Module 12 - Character Drivers

Describe the routines common to both character drivers and block drivers, and identify which are unique to character drivers
Describe the data structure passed to the xxread() and xxwrite() routines
Explain how a character driver can use the physio(9F) routine, and why you would use the physio() routine
Explain the purpose of the xxioctl() routine
Describe the function used for segment mapping
Explain the purpose of the xxchpoll() routine




  

Determine how many devices you can connect to a SCSI-1, SCSI-2 and SCSI-3 bus
Describe how the target driver communicates with the target device
Determine what functions a driver uses to communicate with the host adapter driver
Describe how the host adapter returns the result of a transfer request to the target driver




  Module 14 - SCSI Host Bus Adapter (HBA) Drivers

Describe the HBA Transport Layer
Describe how a driver stores target HBA data in the tran_hba_private field
Describe how you detach an HBA driver
Name the routine that is used to create a SCSI packet
List the routines that are used to handle SCSA command transport and command completion




  Module 15 - STREAMS

List the structures used in STREAMS
Explain queue bands
Describe the transparent ioctl(2) mechanism
Describe the interfaces to the STREAMS module and driver routines
Explain how to install a STREAMS module
List the new STREAMS system calls and support routines
Understand the concept of perimeters and STREAMS multithreading and concurrency




  List the structures used in STREAMS

Describe different dynamic reconfiguration scenarios
Describe the architecture of the Solaris OE Power Management framework and its role in dynamic reconfiguration
Describe how to convert a Solaris OE device driver to support dynamic reconfiguration
Describe the additional commands that have been added to the attach(9E) and detach(9E) routines
Describe the additions that should be made to a Data Link Provider Interface (DLPI) driver
Describe the additional functions that are provided for HBA hot-plugging




  Module 17 - Compiling, Loading, Packaging, and Testing Drivers

Compile kernel code
Describe how to manually install and load a device driver module
List the commands used to package an application in the Solaris OE
Describe the package creation process
Describe basic ways of testing device drivers




  Module 18 - Making a Device Driver 64-Bit Ready

Describe the three objectives for porting a driver to a 64-bit Solaris OE
Understand general and driver-specific 64-bit issues





 
Free PSP - FREE GPS

Save on Sun Microsystems Training



find a course
 
phone us
 
view course schedule





Free $100 Best Buy Gift Certificate

 
go to top
Sun Microsystems, Veritas, Oracle, Symantec, and Project Management IT Education Sun Microsystems, Veritas, Oracle, Symantec, and Project Management IT Education
© 2008 ExitCertified. All rights reserved.
terms of use and disclaimer :: privacy policy :: webmaster :: link to us
   
Sacramento Training :: 916.669.3970 | Las Vegas Training :: 1.800.803.EXIT (3948) | San Francisco Training :: 415.975.3948 | San Jose Training :: 408.288.EXIT (3948)
Phoenix, Arizona Training | Los Angeles, California Training | San Diego, California Training | Broomfield, Colorado Training | Fort Lauderdale, Florida Training
Tampa, Florida Training | Atlanta, Georgia | Downers Grove, Illinois | Kansas City, Kansas Training | Portland, Maine Training | Baltimore, Maryland Training | Burlington, Massachusetts Training
Troy, Detroit, Michigan Training | Minneapolis, Minesota Training | St. Louis, Missouri Training | Omaha, Nebraska Training | Edison, New Jersey Training | New York City, New York Training
Raleigh, North Carolina Training | Columbus, Ohio Training | Philadelphia, Pennsylvania Training | Nashville, Tennessee Training | Dallas, Texas Training
Houston, Texas Training | Hampton, Virginia Training | Madison, Wisconsin Training | Seattle, Washington Training

ExitCertified is a global provider of authorized technology training. Some of our popular course topic searches include:

Java Training | J2EE Training | JSP Training | Java Courses | Servlets Training | EJB Training | Struts Training | Networking Courses | Solaris Training
Red Hat Training | SUSE Training | XML Training | Oracle SQL | Oracle PL/SQL | DBA Training | DBA Certification | Oracle Certification
RedHat Training | Solaris Certification | Java Certification | Veritas Certification | PeopleSoft Training | 11g Training | 11g Certification
RedHat Courses | SQL Training | 10g Training | 9i Training | Application Development Training | Certified Training | Corporate Training
Government Training | Course Catalogue | Training Schedule | Certification Training | Project Management Training | Linux Training
Solaris 10 Training | Unix Training | NetBackup Training | Virus Protection Courses | Education Technology Newsletter | zSeries Training
s/390 Training | iSeries Training | DB2 Training | OS/400 Training | AIX Training | Rational Courses | PMI Training | Project Management Training
SeeBeyond Training | Java Composite Application Platform (JCAPS) Training | MySQL Training | MySQL Database Course | Hyperion Training | Fusion Middleware