LINUX DRIVER WRITING

Linux Training Overview

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.

Linux Training Audience

Programmers and software designers who plan to integrate hardware devices to the Linux kernel.

Linux Training 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

Linux Training Course duration

3 Days

Linux Training 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

  • Wintrac Inc.
    16523 SW McGwire Ct.
    Beaverton OR 97007
    © Wintrac, Inc. All rights reserved.                                                                               Site Map   |   Terms of Use   |   Privacy Policy