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 laboratory assignment instructions.
- The code of specific Linux device drivers and kernel components.
- Documentation on the specific device for which you will develop a driver as the final project.
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.
Date | Topics | Web 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 |