Nachos Part 0: Getting Acquainted

CS 416: Fall 2001
Rutgers University

Due 4pm Friday 9/21/01

This assignment is meant to get you to form your teams, started looking at Nachos, learn how to compile and run the system, and learn how to turn in assignments on line. Remember, late assignments will NOT be accepted.

First, you should download the source. Un-tar it as follows:

% tar xfz nachos.tgz

This will produce a directory nachos in your current directory. In nachos, you will find a number of subdirectories, including userprog, proj2, and test. These are the critical subdirectories for you for this assignment. However, you should look around at the code as well to start familiarizing yourself with the system.

Here's what you need to do:

  1. You need to extend the exception handling mechanism in UserProcess.java in userprog to implement the hello system call. The only thing that this system call should do is to print out "Hello world from inside Nachos" and then return.
  2. To make nachos, cd into proj2 and type make.
  3. The program hello.coff in the subdirectory test has been provided for you to test your extension of Nachos. All it does it call hello() and then halt(). You should copy this file into proj2 and run the following command (from proj2) to run this program on your nachos system:

    % java nachos.machine.Machine -x hello.coff

Here are the steps you should take:

  1. Download nachos as shown above. Since teams will involve 4 people, we suggest you use CVS to share the sources.
  2. Form your team.
  3. Learn how to use some of the tools, including emacs, javac, java, source navigator, and jdb.
  4. Read the introductory documents to Nachos.
  5. Read the Nachos code.
  6. Do the above extension.
  7. Hand in the code.

You should use the cereal machines. In particular, you should use the Linux machine: hill250-1 through hill250-21 machines. You need to access these machines remotely using ssh.

Handin Instructions

Unfortunately, there's a small point of possible confusion. You need to do your extension of Nachos on the Linux machines. However, you need to do the handin from a Solaris machine. DO NOT handin on a Linux machine (hill250-X).

The assignments will be handed in electronically on cereal. First you'll have to log into your cereal account ( telnet cereal ).

You have to handin a single copy of the assignment per group. These are the steps you have to follow:

- write a README file that includes the names and SSNs for group members
- create a tar archive for your assignment

> tar cvf nachos.tar nachos ( outside nachos directory )

- handin cs416-nachos-0 README nachos.tar

In order to check that you handed in the assignment you should execute:

> handin -l cs416-nachos-0