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


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