CMPSCI 596/696: Operating Systems Design (an Independent
Study)
(Fall 2003)
Course Description
This course will expose students to the internals of an operating
system kernel. The course will be based on Linux and will consist of a
series of programming exercises involving implementation of device
drivers, system calls, CPU schedulers, memory management and file
systems. All exercises are based on the book "Kernel Projects for
Linux" by Gary Nutt (ISBN: 0201612437, Addison Wesley). Since the
Linux kernel is written in C, proficiency in the C programming language
is a must. An undergraduate course on operating systems
(equivalent to CMPSCI 377) is also a prerequisite for this course.
Students will meet with the instructor once a week to review
their progress in the independent study.
Course Information
Instructor: Prashant Shenoy
Class Discussions: LGRC 222, Thursday 4:00-5:00
Credits: 3
Course Staff
- Instructor:Prashant
Shenoy
Department of Computer Science,
Computer Science Building
University of Massachusetts
Amherst MA 01003-4610
Phone: (413) 577 0850, Fax: (413) 545 1249
Email: shenoy@cs.umass.edu
Office Hours: Friday 4:00-5:00 pm, Room 336, or by appointment
- Teaching Assistant: Huan
Li
Email: lihuan@cs.umass.edu
Study Plan:
The study plan is based on the dependencies graph of Page 53:
1. warm-up : exercise 1 and 2. If you never touch these materials
before, you'd better do these exercises within one or two weeks.
They are suggested but not required.
2. Exercises required: Exercise 4, 5, 7 or 9, 10 or/and 11. All
students are required to do 4 and 5. For under_grads, you can
choose one from 7 and 9, one from 10 and 11. For grads, you can
choose one out of 7 and 9, but you need to do both 10 and 11.
Since there are four/five exercises, we suggest you to finish each
of them within three weeks.
On the submission, please create a sub_directory named cs596, and
make it readable by the "group", not by the others,. Also please
create a sub_directory for each exercise under cs596 directory.
The submission should include:
(1). you source code (enough in-line comments)
(2). a document about:
---- the problem and the design of your program
---- how to run your program including the test results if needed
---- how much time you spent on this exercise
---- what you have learned from it, and any suggestion about it.
We will have a regular meeting every Thursday 4-5pm. The target of
the meeting is to discuss the problems you met. Since you are a
studying group for the whole course, you may need help from others. The
mailing address for this course is: cs596@cs.umass.edu .
Uesful Links :
1. The Linux
Documentation Project
2. The Linux Kernel Archives
3. Module Programming
Peter
Jay Salzman & Ori Pomerantz : The Linux Kernel Module Programming
Guide
4. System call
Kernel Korner:
Implementing Linux System Calls
How to add system call in Linux Kernel
2.4.22
5. Scheduler
Linux
Scheduler
Students' Links:
Tim Richards ( richards@cs.umass.edu ):
http://ali-www.cs.umass.edu/~richards/cs696/weblog.html
Michael Nuss ( nmx@fromtheshadows.net ):
http://www-edlab.cs.umass.edu/~mnuss/cs596
Eric Eparsons ( eparsons@student.umass.edu ):
http://www.people.umass.edu/eparsons
Levi Ramsey ( lramsey@student.umass.edu ):
http://tatiana.cygnetnet.net/linux-cs
Casey Zeng ( zeng@student.umass.edu ):
http://www-edlab.cs.umass.edu/~czeng/596.html
Ryan McCabe (ryan@numb.org )
This page is online at
http://www.cs.umass.edu/~shenoy/courses/fall03
Copyright 2003, Prashant Shenoy
Last modified: Tue Sept 17 12:28:18 EDT 2003