Calendar - Summer 2014
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 throughout 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 and understanding the material covered in the lectures. 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 specific Linux device drivers, while the students work on their own projects.
The last part of the class will cover in more detail specific Linux device drivers and special topics.
Readings Legend
[LKD] - Linux Kernel Development | |
[LDD3] - Linux Device Driver 3rd Edition |
Week | Date | Class Topics | Readings | Deadlines |
---|---|---|---|---|
1 | 13 May |
Syllabus Course overview Introduction to Device Drivers 1st Day Attendance Survey |
[LKD] Ch. 1 |
|
15 May |
Quick overview of the boot process Assignment 1 (Warmup: Compiling/booting/module) explained. Visit the lab Lab Arrangements/Procedures |
[LKD] Ch. 2 |
Turn in completed survey | |
2 | 20 May | Modules | [LKD] Ch. 17 |
|
22 May |
Quiz #1 Finish modules. Debugging Assignment 2 explained. |
[LKD] Ch. 3 |
Register for Assignment 1 Demo Assignment 1 Due |
|
3 | 27 May |
Character Device Drivers Source Code Cross-References |
[LKD] Ch. 4 |
Choose kernel tool for Assignment 2. |
29 May |
Returned Quiz #1 Finish Character Device Drivers. Assignment 3 explained. |
[LKD] Ch. 9,10 | ||
4 | 3 June |
Added grades to blackboard Kernel Tool Presentations Advanced Char Devices |
[LDD3] Ch. 3,6 | |
5 June |
Kernel Tool Presentations |
|||
5 | 10 June |
Advanced Char Devices (ioctls, simple sleeping) Concurrency(source code cross-references) |
Advanced Char Devices (part 2) (not covered in class) |
|
12 June |
Concurrency(source code cross-references) |
[LDD3] Ch. 5 |
Assignment 3 Due Register for Demo |
|
6 | 17 June |
Quiz #2 Assignment 4 explained. Time, Delays, and Deferred Work |
[LKD] Ch. 8, 11 | |
19 June |
Returned Quiz #2 Time, Delays, and Deferred Work |
[LDD3] Ch. 10 | ||
7 | 24 June |
Quiz #3 Communicating with Hardware |
[LKD] Ch. 8, 11 [LDD3] Ch. 9 |
|
26 June |
Final Project Proposal Presentations Interrupts |
[LKD] Ch. 7 [LDD3] Ch. 11 |
Final Project Proposal |
|
8 | 1 July |
Final Project Proposal Presentations Interrupts |
[LKD] Ch. 6 [LDD3] Ch. 11 |
Assignment 4 Due Register for Demo |
3 July |
Supplement: Memory Barriers and Spinlock Usage Kernel Data Structures |
[LKD] Ch. 12 |
||
9 | 8 July |
Quiz #4 Kernel Data Types |
[LDD3] Ch. 8 |
|
10 July |
Memory Mapping Memory Allocation |
[LKD] Ch. 14 [LDD3] Ch. 16 |
||
10 | 15 July |
USB drivers (guest lecturer: Michael Mitchell) code examples |
||
17 July |
Mid Final Project Presentations |
|||
11 | 22 July |
Quiz #5 Block Devices |
||
24 July | Questions on Course | |||
12 | 29 July |
Final project presentations. Quiz #6 |
||
31 July |
Final project presentations. Quiz #7 |
Final Project Report and Demo Due by (Aug 1st) |
||
13 | 05 August | Grades Due at Registrar (4pm) |