Projects
Nachos Code Distributions
The Java version of Nachos is available for you to download here: nachos-java.tar.gz (112 Kb gzipped
tarfile). You can unpack this file using the command
gzcat nachos-java.tar.gz | tar xf -
which will create the directory nachos.
See the file README contained within the tarfile for
information on using and compiling the code.
Each project group should download this code just once
and place it under CVS control for the group to use. Other group
members
are certainly willing to download the code and look at it without
checking it in to CVS.
We will be setting up project groups and CVS repositories for each
group
soon; in the meantime, you should be reading through the code and
trying to understand how it works.
You can also view a PDF version of the code here.
Please do not print this out from campus printers. Purchase the reader instead.
Java Distributions
The Java version of Nachos only supports Java 1.3.1, as the security
manager and set of reserved keywords has changed in later versions.
Instructional machines already have 1.3.1 installed. For remote users,
you can download 1.3.1 here: http://java.sun.com/j2se/1.3/download.html
.
If you are curious to see what version of java you are using you can run the following command "java -version". We cannot stress strongly enough that you should not use java 1.4 or java 1.5. You might run into transient errors that will not show up as warnings or errors during compile time.
Project Components
There are four projects. Each project has three components:
- A design document. You will meet with your TA to discuss your
design about 7-10 days before each project (phase) of Nachos.
- Project code.
- Project group member evaluations.
Group Tools for Nachos Projects
General Project Information
Project Grading
The design document will be worth 40% of the project grade, and the code itself
will be worth the other 60%. You must turn in your initial design document
in order to get a grade for the project.
Project Deadlines
You should submit assignments as early as possible to avoid submission
problems. You can submit multiple times, however, only the last
submission will be graded.
Assignments (design docs, code, and group evaluations) are due by
11:59pm on the due date.
Autograder Queue
Cross Compilers
A cross-compiler is a compiler that runs on one architecture
but compiles to another architecture, e.g. a compiler that runs on x86
Solaris machines such as torus.cs but builds MIPS programs. You will
be making extensive use of MIPS cross-compilers this semester, unless
you actually run Nachos on a MIPS machine.
When you run gmake in the test directory, gmake will look for a
cross-compiler in the directory pointed at by the ARCHDIR environment
variable. If you are using an instructional machine of one of the
architectures we support, then this is automatic.
If you are not using an instructional machine for Nachos Phases 2-4,
you will need to:
- download the necessary cross-compiler, and
- set the ARCHDIR environment variable to point at the
cross-compiler directory.
We provide a few common cross-compilers, so most likely you
will not have to build one of your own: