Operating Systems Lab

CS63: Principles of Computer Organization
Fall Semester, 1997

Ray Ontko
Department of Computer Science
Earlham College

The purpose of this lab is to give you a chance to examine and analyze the source code for a modern operating system.

I have printed the source code for a portion of the Linux operating system, a modern, freely distributed, POSIX-compliant, Unix-like operating system. I have chosen modules which are related to the operating system features we have discussed in class and which are mentioned in the text.

As an in-class exercise, pick one of the printed modules I have provided and do the following:

  1. Write your name on the listing for the module you picked.

  2. On the back of the listing, write the names of the functions which are defined in the listing.

  3. Some of the routines are probably used only within your module, and others are probably called by other modules. Of these, which (if any) do you think implements an operating system level (level 3) instruction? Mark these with an asterisk in the list you prepared in step 2.

  4. For each function identified in step 3, describe the function to the best of your ability based on the reading of the source code.

  5. List three things that surprised you about the source code.

  6. List three things that didn't surprise you about the source code.

  7. Feel free to cross-check your list in step 3 by consulting the man page for the function using any unix system. If it's got a man page, chances are it's a level 3 (or higher) function.

  8. Turn in your listing at the end of class to my box in the Math Department Lounge. I'd like to see what you got out of the exercise.

Copyright © 1997, Ray Ontko (rayo@ontko.com).
If you're curious about why I copyright, see Peter Suber's Why Copyright Web Documents?.