CMPSCI 596/696:  Operating Systems Implementation (an Independent Study)

(Spring 2004)

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 kernel modules, system calls, CPU schedulers, memory management and file systems. 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.

The project will be adapted to kernel 2.4 and User-Mode-Linux (UML).

Students will meet with the instructor once a week to review their  progress in the independent study.


Course Information

Instructor: Prashant Shenoy

Class Discussions: CS Bldg, Room 140, Thursday  5:00-5:45

Mailing List: cs596@cs.umass.edu

Credits: 3


Course Staff

           Email: lihuan [at] cs.umass.edu
           Office Hours: Friday 4:00-5:00pm, LGRC 222


Study Plan (Draft):

1. Using User-Mode-Linux (UML) (Due date: Feb 4, 2004)

2. Observing Linux Behavior

3. Kernel Modules

4. System Calls

5. Memory Management

6. The Scheduler

7. File Systems




Reading Materials and References



Other Useful 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. Linux Kernel 2.4 Internals

6. Understanding the Linux memory management

7. FEATURES, User Mode Linux, Running Linux on Linux, by Jeff Dike

8. Kernel-API

9. Writing a Simple USB Driver


Other Issues :
  1. Students' Links
  2. README Sample



This page is online at http://www.cs.umass.edu/~shenoy/courses/fall04
Copyright 2004, Prashant Shenoy

Last modified: Tue Jan 27 12:28:18 EDT 2004