Linux Kernel & Device Driver Programming

COP5641 Spring 2013

[Home] [Syllabus] [Calendar] [Class Code] [Assignments] [References] [Final Projects]

Calendar

The course calendar summarizes the important dates for the term, including assignment due dates. It starts out as a plan, and is updated to fit reality during the term. Please check back often, as it will be updated frequently!

To do the projects, one needs at least a little bit from several chapters scattered througout the book, but one does not need to understand every detail. The book tries to cover all kinds of devices and the entire device driver programming interface, but we will just be using a subset of that. We also have other material, not in the book, that we need to read, including the following:

The intent of the reading assignment schedule is to read (rush) through the entire book quickly enough that we have the knowledge we need to tackle a serious project towards the latter half of the class. There will be unannounced short quizzes, usually 15 minutes long, from time to time to spot-check that we are keeping up with the readings. As the term progresses, when it appears the assignments were getting difficult enough to take time away from reading, and we need extra time time to discuss the specifics of the assignments, we will back off on the pace of the readings and in-class coverage of the textbook topics, and use the class time to walk through some full Linux device drivers, while the students work on their own projects.

The last part of the class will go over special topics and full Linux device drivers.



DateTopicsWeb
Notes
Read
in Book
Comments
Tue 08 Jan Introduction and Overview Syllabus;
Survey;
Overview;
Introduction to Device Drivers;
Assignment 1 explained
LDD3 1, 2;
LKD 1, 2;
 
Thu 10 Jan Virtualization, Compiling,
and Modules
Virtualization
Kernel Compilation Demo
Modules
LDD3 2;
LKD 1, 2, 17;
 
Tue 15 Jan Building & Running Kernel Modules Modules LDD3 2;
LKD 2, 17, 3;
 
Thu 17 Jan Debugging and Other Helpful Techniques Basic debugging
Assignment 2: pdf ppt
LDD3 18; LKD 4; Register for Assignment 1 demo
Tue 22 Jan Assignment 1 Demo Day No lecture class, meet in lab for your assigned demo.
  Assignment 1 Due
Thu 24 Jan Character Drivers Char Drivers LDD3 3, 6;
LKD 17;
Register for Assignment 2 demo
Tue 29 Jan Kernel Tool Presentation Day
Meet in the lab
    Assignment 2 due
Thur 31 Jan Kernel Tool Presentation Day
Meet in the lab
    Assignment 2 due
Tue 05 Feb Concurrency & Race Conditions Assignment 3 explained
Concurrency
LDD3 5;
LKD 9, 10;
 
Thu 07 Feb Advanced Character Device Operations Advanced Char Ops LDD3 6;
LKD 17;
 
Tue 12 Feb Advanced Character Device Operations
Using /proc
Time in the Kernel
Advanced Char Ops
Proc
Time
LDD3 7;
LKD 8, 11;
Register for Assignment 3 demo
Thu 14 Feb Assignment 3 Demo Day No lecture class, meet in lab for your assigned demo.
  Assignment 3 due
Tue 19 Feb Allocating Memory
Memory LDD3 8;
LKD 12;
 
Thu 21 Feb Delays & Deferred Work Delays and Deferred Work
Assignment 4 introduced.
LDD3 7;
LKD 8, 11;
 
Tue 26 Feb USB Drivers USB    
Thu 28 Feb Communicating with Hardware Hardware
LDD3 9  
Tue 05 Mar Final Project Ideas Introduction to Assignment 5
Final Project Ideas
  Sign up for Assignment 4 Demo
Thu 07 Mar Assignment 4 Demo Day No lecture class, meet in lab for your assigned demo.
  Assignment 4 due
Tue 12 Mar No class - Spring Break     no class
Thu 14 Mar No class - Spring Break     no class
Tue 19 Mar Interrupts Handling Interrupts LDD3 8, 20;
LKD 12, 7
Initial project proposals due
Thu 21 Mar Kernel Data Types and Structures Data Types
Data Structures
LDD3 11;
LKD 6,19;
 
Tue 26 Mar Initial Presentations Initial Project Presentations, meet in lab   Team Project Proposal Presentations
Thu 28 Mar Block Devices Block Devices LDD3 16;
LKD 14;
 
Tue 02 Apr Device Management Device Mapper and Flash FTL    
Thu 04 Apr File Systems The Virtual File System LKD 13;  
Tue 09 Apr Midway Presentations Midway Project Presentations, meet in lab   Midway Project Presentations
Thu 11 Apr Memory Mapping Memory Mapping LKD 12, 15;
LDD3 15;
 
Tue 16 Apr Linux Device Model Linux Device Model Pt 1
Assignment 5 Deliverables
LKD 17;
LDD3 14;
 
Thu 18 Apr Linux Device Model Linux Device Model Pt 2 LKD 17;
LDD3 14;
Sign up for Project Demo
Tue 23 Apr Project final reports & demonstrations     Project Due
Thu 25 Apr Project final reports & demonstrations     Project Due
Tue 7 May Grades due at Registrar     4:00 PM