LINUX DEVICE DRIVERS DEVELOPMENT

This intensive course transforms an IT-Professional or a Student into a Linux Device Driver & Kernel Developer for Character Storage devices, Block Storage devices & Network Storage devices and for those Programmers who already working on Linux, but looking for a methodical and concept clearing professional training on Linux system and kernel programming. Our training sessions go beyond the basics and provide the desired knowledge level to get the most out of your Linux system. We are dedicated towards offering a comprehensive level course covering varied aspects of system programming like Linux programming, Kernel programming and Linux device drivers.

COURSE CODE: ITR301

 

COURSE DURATION: 6 WEEKS

 

COURSE OBJECTIVES:

  1. We offer this course for all those beginners and working professionals who are seeking assignments on Linux kernel programming, device drivers.
  2. Introduces Linux operating systems.
  3. Introduces Linux Kernel and module programming.
  4. How to use Character drivers, Block drivers and Network drivers.
  5. Concept of Kernel synchronization and debugging.
  6. Introduces time delays deferred execution & interrupt handling
  7. Proper grounding on Linux, its concepts and finer nuances of programming
  8. Recall the basic Linux commands
  9. Grasp core operating system concepts and module programming

COURSE CONTENTS

MODULE 3: LINUX NETWORK DEVICE DRIVERS

CHAPTER 1: GETTING STARTED WITH NETWORK DRIVERS

  1. OSI Layers & the Network (TCP/IP) Stack Placement
  2. Network Driver & Device Registrations
  3. Kernel Data Structures & Buffer Management
  4. Network Device Operations
  5. Interrupt Handling Techniques
  6. The First Network Driver
CHAPTER 2: PROGRAMMING THE PCI

  1. Understanding the x86 processor bus: PCI
  2. PCI Core & Programming the PCI
  3. Finding & Interacting with a PCI Device
  4. The First PCI Driver
CHAPTER 3: DEVELOPING THE PCI BASED NETWORK DRIVER

  1. Programming the Network Device Registers
  2. Integrating the PCI horizontal with the Network vertical
  3. Implementing the PCI Network Driver
CHAPTER 4: HANDS-ON & PRACTICAL DURING TRAINING

  1. Writing a Loopback Network Driver
    • Registering the Network Driver
    • Buffer Management with skbuffs
    • Packet Transmission & Reception
    • Reception using interrupt and poll
    • Other network operations including statistics
  2. Testing the Network Driver
    • Setting up the network
    • Communicating over the network
  3. Writing the first PCI Driver
    • Registering & Finding a PCI device
    • Mapping & Accessing the PCI device regions
  4. Writing the PCI Network Driver
    • Programming the Network Device Registers
    • Implementing the Transmission & Reception with the actual device
    • Setting up the network across computers