Toll Free: 800-735-7418
Local: 303-377-9333
info@hartmannsoftware.com
 
 

 
LINUX DRIVER WRITING

Course Description  
This course provides a general introduction to Linux device driver development. Students gain a clear practical understanding of the way drivers are designed, interfaced with the kernel, implemented, and tested.

Course Length: 3 Days
Course Tuition: $990 (US)
Prerequisites
Linux Internals is recommended. Strong C programming skills and intermediate knowledge of UNIX/Linux shell commands are required. Experience with the data structures and basic functions used in the Linux kernel is necessary. Proficiency at configuring and installing a new Linux kernel on a system is assumed.
Course Outline  

• Introduction to Linux Driver Development
Introduction and environmental setup
Kernel versions and compatibility
Components of the Kernel
Aims of driver development
Steps associated with the development of a driver
How device drivers work
Stability and security issues

• Device Drivers
Elements of a driver
Benefits and drawbacks
Classes of drivers

• Linux Kernel Facilities
System calls
Data structures
Functions

• Modules
Benefits of using modules
Module-related tools
Compiling, loading, and unloading
Module implementation
Automatic module loading

• Character Devices
Accessing the device
File and inode structure
File operations
Reading and writing
IOCTLs
Example of a character device

• Hardware Aspects
Accessing memory
Direct Memory Access
I/O Management
PCI and ISA

• Block Drivers
Registration
The blk.h header
Requests and Mounting
• Networks
Layer model
Network communications
Implementation of the TCP/IP stack
Data structures
Socket
sk_buff
Inet socket
proto
ARP and IP Protocols
IP Filters
UDP and TCP

• Network Devices
Integration in the kernel
Ethernet Devices
SLIP and PPP
Loopback
Dummy devices
Loading network drivers
Transmitting and receiving packets
Device configuration
Statistics

• SCSI Subsystem
Architecture overview
Names and conventions
Upper level
Block devices (hard disks, CD-ROM)
Character devices (Tape)
Generic drivers
Mid level (boot parameters, proc interface)
Lower (hardware) level and pseudo drivers

• Device Drivers Debugging
Printing with printk
Queries
/proc entries
Tracing and debuggers

Download a detailed course outline (PDF)
Contact us for course schedules or more information.
 

Registration and Pricing
The Virtual Classroom
Mentoring Services


Fresh Off The Press MySQL Admin/Dev
Sharepoint for Developers
Advanced XML
Securing Java Web Services
Exploring Design Patterns
Fast Track to Java EE
Ajax using C# (VS 2008) Oracle 11G New Features Complete LINQ