Custom Classes:
Axian specializes in customizing our classes to meet your
specific needs. Please call or e-mail us with your requirements.
Axian, Inc.
4800 S.W. Griffth Dr., Suite 202, Beaverton, OR 97005
Phone: (503) 644-6106
Fax: (503) 643-8425
info@axian.com
www.axian.com
Call 644-6106, ext. 107
or
e-mail Axian training
for course registration or more information
Course Files and Links:
|
|
COURSE OBJECTIVES
Linux Device Drivers is designed to teach
experienced programmers how to develop device drivers for Linux systems. Upon completion
of the course, students will understand the Linux architecture, hardware and memory
management, modularization, and the layout of the kernel source.
Students will learn:
- An Introduction to the Linux Kernel
- Building and Running Modules
- Character and Block Drivers
- Debugging Techniques
- Hardware Management
- Interrupt Handling
- Judicious Use of Data Types
- Kerneld and Advanced Modularization
- Network Drivers
- Physical Layout of the Kernel Source
TEXTS
- Linux Device Drivers by Allesandro Rubini; published
by OReilly
INSTRUCTIONAL APPROACH
This course will be taught in a classroom with
computers available installed with the Red Hat 5.2 Linux distribution. The emphasis will
be on hands-on programming, with the time divided between lecture and workshops.
The class is divided into 16 sessions. The lectures are intended to
be interactive and will include review of the lab assignments. The sessions range are
presented over a period of 4 days.
PREREQUISITES
LINUX DEVICE DRIVERS
Course Outline
- SESSION 1: AN INTRODUCTION TO THE LINUX KERNEL
Topics:
- The Role of Driver Drivers and How They Fit in Linux
- Structure of the Kernel
- Classes of Devices and Modules
- Security Issues
- SESSION 2: PHYSICAL LAYOUT OF
THE KERNEL SOURCE
Topics:
- Directory Structure
- Networking, Drivers and Architecture Dependencies
- SESSION 3: BUILDING
AND RUNNING MODULES
Topics:
- Booting the Kernel
- Before Booting
- The Init Process
- Compiling and Loading
- Initialization and Shutdown
- Automatic and Manual Configuration
- SESSION 4: CHARACTER
AND BLOCK DRIVERS
Topics:
- Major and Minor Numbers
- File Operations
- The file structure
- SESSION 5: ENHANCED
CHARACTER DRIVERS IN DETAIL
Topics:
- Ioctl
- Blocking I/O
- Seeking a Device
- SESSION 6: DEBUGGING
TECHNIQUES
Topics:
- Printing
- Querying
- Watching
- System Faults
- Using a Debugger
- SESSION 7: TIME
MANAGEMENT IN THE KERNEL
Topics:
- Task Queues
- Kernel Timers
- SESSION 8: MEMORY
MANAGEMENT
Topics:
- Kmalloc
- get-free-page and Friends
- Direct Memory Access
- SESSION 9: HARDWARE
MANAGEMENT
Topics:
- Accessing Memory on Device Boards
- Using I/O Ports
- SESSION 10: INTERRUPT
HANDLING
Topics:
- Interrupt-Driven I/O
- Implementing a Handler
- SESSION 11: LOADING
MODULES ON DEMAND
Topics:
- Version Control in Modules
- Persistent Storage Across Unload/Load
- SESSION 12: BLOCK
DRIVERS Part 2
Topics:
- Registering the Driver
- The Header File blk.h
- Handling Requests
- Removable Devices
- Partitionable Devices
- Interrupt-Driven Block Drivers
- SESSION 13: THE
STREAMS MECHANISM
Topics:
- Structure of streams
- Queuing messages
- Delayed processing
- SESSION 14: NETWORK DRIVERS
Topics:
- The device Structure in Detail
- Packet Transmission and Reception
- The Socket Buffers
- Load-Time Configuration
- SESSION 15: OVERVIEW
OF PERIPHERAL BUSES
Topics:
- The PCI Interface
- A Look Back: ISA
- Other PC Buses
- Sbus
- SESSION 16: MOVING
FROM 32 BIT TO 64 BIT SYSTEMS
Topics:
- ILP32 to LP64
- 64 Bit OS with 32 Bit Cards
LINUX DEVICE DRIVERS
(c) COPYRIGHT AXIAN, INC. 1999 |