Linux Device Driver Course Syllabus


Duration 100 hours

Classes Flexible


-         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



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



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



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




5.     Project Work - Flexible