CS 635: Advanced Systems Programming (Spring 2003)
Lecture: Tuesday-Thursday 3:15pm-5:00pm (235 Harney Science Center)
Instructor:
Allan Cruse
cruse@usfca.edu
Phone: (415) 422-6562
Office: 212 Harney Science Center
Office Hours: (see my homepage)
Course Assistant:
Ajanta Adhikari
Consulting hours: Mon & Wed 5:20pm-6:15pm in HRN-235
- Focuses on Open Source Linux operating system for Intel Pentium processors
kernel version 2.4
- Assumes familiarity with C/C++ programming language,
x86 machine architecture, Unix operating
system commands,
and standard data-structures and algorithms (e.g., CS 112/210/245/326)
- Open to USF Graduate Students
(and to qualified undergraduates with instructor permission)
Topics include:
- Shared runtime libraries
- Loadable kernel modules
- Asynchronous input/output
- The '/proc' and 'ext2' filesystems
- Character and Block Device-Drivers
- System data-structures and algorithms
- Kernel threads, timers, and wait-queues
- Interrupts, Exceptions, and System-Calls
- IA32 Symmetric Multiprocessing architecture
Course includes lectures, readings, discussions, demonstrations and programming projects.
Course Textbooks:
Michael Beck et al, Linux Kernel Programming (Third Edition)
(Addison-Wesley Publishing Company, 2002) ISBN 0-201-71975-4
A. Rubini and J. Corbett, Linux Device Drivers (Second Edition)
(O'Reilly & Associates, Incorporated, 2001) ISBN 0-596-00008-1
Learning Outcomes:
- You will know how to read and write code for an operating system
- You will know how to build customized extensions to an OS kernel
- You will be able to invent new tools which let users control their PC
- You will be able to assess system features that impact performance
Resources
Handouts
Readings
- Week 1: Chapters 1 and 2 in "Linux Device Drivers"
- Week 2: Chapters 3 and 4 in "Linux Device Drivers"
- Week 3: Chapter 5 in "Linux Device Drivers" and
Chapter 3 in "Linux Kernel Internals"
- Week 4: Chapter 4 in "Linux Kernel Internals"
- Week 5: Chapter 16 in "Linux Device Drivers"
- Week 6: No new assignment: Review for Midterm Exam I
- Week 7: Chapter 13 in "Linux Device Drivers"
- Spring Vacation: Week of March 17-21, 2003
- Week 8: Chapter 9 in "Linux Device Drivers"
- Week 9: Chapter 10 in "Linux Kernel Internals"
- Week 10: Chapter 6 in "Linux Device Drivers"
- Week 11: Chapter 15 in "Linux Device Drivers"
- Week 12: No new assignment: Review for Midterm Exam II
- Week 13: Chapter 13 in "Linux Device Drivers"
- Week 14: Chapter 6 in "Linux Kernel Internals"
- Week 15:
Design and Implementation of the Second Extended Filesystem
- Week 16: No new assignment: Review for Final Examination
Announcements
- Project 1: Due Noon Friday, 14 February 2003
- Project 2: Due Noon Friday, 28 February 2003
- Midterm Exam 1: Thursday, 6 March 2003
- Project 3: Due Noon Friday, 28 March 2003
- Project 4: Due Noon Monday, 14 April 2003
- Midterm Exam 2: Tuesday, 15 April 2003
- Project 5: Due Noon Friday, 9 May 2003
- FINAL EXAMINATION: Thursday, 22 May 2003, 12:30pm
Last updated on 06/24/2007