Future lecture/discussion material is subject to change.

Any provided slides are for your personal use only; they are subject to their authors' copyright claims, and you are not authorized to disseminate them, including, without limitation, to companies that aggregate course materials.

Lecture recordings can be found on echo360

Prof. Hu's in-class code can be found on GitHub

Date Topic Reading
8/24 1. Class overview and big picture: Lecture1 CN
8/25 Overview of MPs and Environment slides MP0
8/26 2. x86 instruction set architecture: introduction and instructions: Lecture2: Slides CN
8/31 3. x86 isa: assembler conventions, calling convention, examples: Lecture3: Slides CN
9/1 PS1, x86 slides PS1
9/2 4. C to x86 linkage, device I/O; role of system software, system calls: Lecture4: Slides CN, (ULK1)
9/7 5. Interrupts and exceptions, processor and ISA support: Lecture5: Slides CN, (ULK4)
9/8 MP1, x86, calling convention slides MP1
9/9 6. Shared resources, critical sections, examples: Lecture6: Slides CN, (ULK5)
9/14 7. Multiprocessors and locks, conservative synchronization design: Lecture7
8. Linux synchronization interface, synchronization hazards: Lecture8
CN, (ULK5)
9/15 PS2, Synchronization slides PS2
9/16 9. Programmable interrupt controller, motivation, design: Lecture9: slides CN
9/21 9. Programmable interrupt controller, motivation, design: Lecture9 (cont)
10. Linux abstraction of PIC; Introduction to Interrupt support in Linux: Lecture10: slides
9/22 MP2.1 slides MP2
9/23 11. Linux abstraction of PIC; Introduction to Interrupt support in Linux (cont): Lecture11: slides
12. Interrupt support in Linux: data structures, initialization and assembly linkage
13. Interrupt support in Linux: invocation; summary of the interrupt support
CN, (ULK 4)
9/29 MP2.1 and 2.2 slides MP2
9/30 MP3 Team Forming, Midterm return CN, (ULK4)
10/5 14. Virtual memory: rationale, segmentation: Lecture14–15 CN, (ULK2, LDD13)
10/6 MP2.2, Tux Synchronization slides MP2
10/7 15. Virtual memory: paging CN, (ULK2, LDD13)
10/12 16. Filesystem: philosophy, ext2 as example (file system in MP3): Lecture16 slides ULK12&18, MP3
10/13 MP3 overview, MP3.1 slides MP3
10/14 16. Filesystem: philosophy, ext2 as example (file system in MP3): Lecture16 slides (cont).  
10/19 17. Programs to processes: rationale, terminology, and structures (task structure, kernel stack, TSS): Lecture17 slides ULK3&7
10/20 MP3.2 slides MP3
10/21 18. Programs to processes: creating processes; job types and basics of scheduling; scheduler design and implementation: Lecture18 slides ULK7
10/26 19. System call linkage Review Session for Exam 2: Lecture19 CN, (ULK10)
10/27 Exam Review; MP3.3 slides  
11/2 22. Midterm 2 hand-back. Memory allocation: Lecture22 slides ULK8, ULK13
11/3 MP3.3 slides MP3
11/4 23. System calls and linkage. Memory allocation, continued: slides CN, (ULK10)
11/9 24. Memory management. Signals: slides CN
11/10 MP3.4, system calls slides MP3
11/11 Networking: slides Slides/Lecture
11/16 Networking, Continued; Abstracting devices: block and character devices; device drivers: slides Slides/Lecture, LDD1&3, (ULK13)
11/17 MP3.5 Scheduling slides MP3
11/18 Security: slides Slides/Lecture
Fall Break
11/30 Security, Continued; Slides/Lecture
12/1 Final Logistic and Farewell: slides MP3
12/2 Optional Review Lecture TDB
12/7 No lecture, MP3 demos  
12/8 No Disc, MP3 Demos MP3
Course Notes Set #
Understanding the Linux Kernel (Bovet & Cesati), Chapter #
Advanced UNIX Programming (Rochkind)
Linux Device Drivers (Corbet, Rubini, Kroah-Hartman)