Thac's RPMs for Mandrake9.1

Updated 2003-04-23

My Index rpms for Mandrake9.1

My Networking rpms for Mandrake9.1

My Monitoring rpms for Mandrake9.1

My Sound rpms for Mandrake9.1

My Util rpms for Mandrake9.1

My Graphics rpms for Mandrake9.1



Type this in a console as root, to add my RPMS to the urpmi database.
urpmi.addmedia thacs.rpms http://www.mde.djura.org/9.1/RPMS with hdlist.cz.



My Mandrake 9.1 RPM for mips-decstation.linux-xgcc
which is needed to be able to build programs for nachos.

mips-decstation.linux-xgcc it contains the NachOS MIPS build environment.

  • My mips-decstation.linux-xgcc-2.95 RPM here
  • My mips-decstation.linux-xgcc-2.95 SRPM here


My Mandrake 9.1 RPM for nachos-4.0

nachos-4.0 is instructional software for teaching undergraduate, and potentially
graduate, level operating systems courses.

  • My nachos-4.0 RPM here
  • My nachos-4.0 SRPM here

Running Nachos

Once you have installed nachos and mips-decstation.linux-xgcc, you should be able to run it by simply typing
./nachos
The command line argument -u will give you a list of the available command line options. Using these options, you can control what nachos does when it runs. For starters, you may wish to try the -K and -C flags, which run some simple self-tests. You can also try asking Nachos to run a very simple test program called halt, which is found in the code/test directory. To try this, type
./nachos -d m -x /usr/local/nachos/source/code/test/halt
The -d m turns on machine simulator debugging output, which includes the assembly language trace of halt's execution. The halt program simply makes the "Halt" system call, which causes the machine simulator to halt and print out some statistics. Have a look at the halt program. It is in code/test/halt.c.

For more details, you can look in the file /usr/local/nachos/source/code/threads/main.cc. In fact, this is the best place to start reading the Nachos code, since this is where it all begins.

Nachos Directory Structure

The main nachos directory contains three sub-directories: below /usr/local/nachos/source/
coff2noff/
The source code and Makefiles for coff2noff, which is a program for converting COFF (Common Object File Format) files to NOFF (Nachos Object File Format) files. Note that noff.h in this directory is a link to the file noff.h in userprog.
c++-example/
The Nachos operating system is written in a subset of C++. This directory contains an excellent primer on C++. This primer is good reading for those who need a refresher, and even for those of you who are experienced C++ programmers. In particular, it explains why some of the "features" of C++ are not used at all in Nachos.
code/
All of the source code for the Nachos operating system, the machine simulation, and the test programs can be found here. This code is organized into several sub-directories:
lib
utilities used by the rest of the Nachos code
machine/
The machine simulation. Except as noted in machine.h, you may not modify the code in this directory.
threads/
Nachos is a multi-threaded program. Thread support is found here. This directory also contains the main() routine of the nachos program, in main.cc.
userprog/
Nachos operating system code to support the creation of address spaces, loading of user (test) programs, and execution of test programs on the simulated machine. The exception handling code is here, in exception.cc.
filesys/
Two different file system implementations are here. The "real" file system uses the simulated workstation's simulated disk to hold files. A "stub" file system translates Nachos file system calls into UNIX file system calls. This is useful initially, so that files can be used (e.g., to hold user programs) before you have had a chance to fix up the "real" file system. By default, the "stub" file system is build into the nachos program and the "real" file system is not. This can be changed by setting a flag in the Nachos makefile.
network/
Nachos operating system support for networking, which implements a simple "post office" facility. Several independent simulated Nachos machines can talk to each other through a simulated network. Unix sockets are used to simulate network connections among the machines.
test/
User test programs to run on the simulated machine. As indicated earlier, these are separate from the source for the Nachos operating system and workstation simulation. This directory contains its own Makefile. The test programs are very simple and are written in C rather than C++.

Use theese NachOS Downloads: if you want to build nachos yourself or to use nachos on Windows or MacOS

  • Sources: NachOS-4.0.tgz (Updated version of December 16, 2002), start.s
  • Cross compiler: mips-decstation.linux-xgcc.tgz, mips-decstation.win32-xgcc.tgz
  • Install image (16MB) of the MacOS X cross-compiler
    It contains the NachOS MIPS build environment. When you double-click the disk image, it mounts as /Volumes/NachOS. You'll find the necessary binaries in /Volumes/NachOS/bin or /Volumes/NachOS/decstation-ultrix/bin.
  • Installation Notes:

    The NachOS source can be installed anywhere in your home directory. Just untar it at an appropriate place. Go to the "NachOS-4.0/code/build.*" directory and edit "Makefile.dep" if your host gcc compiler lives at an obscure place.
    In order to install the cross-compiler you'll need to have write access to the "/usr/local/nachos" directory on your Linux system (it's "/usr/local/nachosxdec" for Windows). Go to your root directory "/" and untar the given cross compiler archive.
    If your cross-compiler is not in the directory listed above you'll have to change "test/Makefile.dep" to get all tools right. The cross-compiler for MacOS X should be installed automatically somewhere else, thus you will have to change that file, too.

    NachOS Documentation:

  • Lecture slides (16.10.2002)
  • Walkthrough to NachOS
  • NachOS Links:

  • Using GDB with NachOS
  • Development Environment for Windows: Cygwin
  • CSCI 402 - Operating Systems: NACHOS: The basis of class projects
  • CSCI 402 - Assignment #2: Exception Handling and System Calls, Multiprogramming
  • C++ Links:

  • C++ Tutorial
  • C++ Compact Course Slides from Ron DiNapoli, Cornell University; Summary from Gerd Liefl�der ( printable.pdf )
  • CS 213 Official Web Site: http://salsa.cit.cornell.edu/cs213-sp01/
  • NachOS Mailing List:

  • NachOS Mailing List
  • NachOS Mail Archive
  • My email