Linux Device Driver Course Syllabus

 

Duration – 100 hours

Classes – Flexible

Prerequisites

-         Good C programming skills

-         Good knowledge of Linux and Linux shell scripting

-         Good knowledge of computer/microprocessor/microcontroller architecture

-         Operating Systems theory

-         Excellent analytical skills and problem solving skills

 

Modules to be covered

1.     Linux Basics and Shell scripting (Revision) – 10 hours

Command-line interface

Directory Structure & Contents

Basic Shell utilities /commands

Directory / File Operations

System/Process/Disk Status Indicators

Getting Help: man, info pages

On-Line Manuals

Shell scripting basics

Assignments

 

2.     C Refresher + Advanced C – 20 hours

Introduction to Linux GNU Compiler Collection (gcc)

Foundations of C programming - Revision

   Types, declarations and expressions

   Control Flow, Functions and program structure

   Arrays, pointers, structures, unions – nested structures, pointers to         structures, arrays of pointers, double pointers

   Data structure design

   Input and output handling, File handling

Dynamic Memory Management – malloc, calloc, free

Linked Lists – singly linked list, queues, stacks

Command-line argument handling

Program Design

Assignments

 

3.     Linux systems programming using C – 30 hours

Files and streams

Process management

Signals, Timers

POSIX Threads

Socket programming

Advanced programming topics (function pointers, file processing)

Makefile for multiple source file compilation

Assignments

 

4.     Linux Device Drivers Development (for x86 processors) – 40 hours

Intro to devices and drivers

Understanding and building Linux Kernel modules

Char drivers

Time constraints

Linux device model

Interrupt handling

Debugging techniques

Advanced char drivers

Introduction to block and network drivers

USB drivers

Bluetooth drivers

Assignments

 

 

5.     Project Work - Flexible