Getting and Installing System/161

Note that if you are taking a course using System/161, chances are that your course staff has already installed it for you.

Getting System/161

Download URLs:

http://os161.eecs.harvard.edu/download/ (long-term address not yet operational)
http://www.eecs.harvard.edu/~dholland/os161/download/ (current as of this writing)

Supported Platforms

Actively maintained/tested host systems:

Other supported host systems: Other Unixes should work. You may need to use GNU make (or BSD make) on some. Windows is not supported; it might work with Cygwin or MinGW or the like, maybe. (I'll take noninvasive patches, but I won't maintain them.)

Supported host CPU types:

System/161 should be runnable on any remotely sane CPU and is known to be 64-bit clean.

Supported host compilers:

I have not tested gcc 3.4 or 4.x beyond 4.1; they probably work. gcc 2.95 and 2.7.x may work also. There also is explicit support for the DEC compiler for alpha on Digital Unix (aka Compaq Tru64) but it hasn't been tried in a while. I have no data whatsoever on Sun's compilers.

Supported guest compilers:

Installation (Unix sysadmins and developers)

Short installation directions for Unix sysadmins: untar, configure --help, configure, make, make install. As of version 1.15 System/161 configures with --prefix and installs in the normal layout.

Installation (everyone else)

Assuming you downloaded version 1.15, unpack the distribution file by typing

	tar -xvzf sys161-1.15.tar.gz
This will create a subdirectory called sys161-1.15 with the distribution files in it. Go into this directory by typing
	cd sys161-1.15
and run the configure script. These are the configuration options:
  OptionDescriptionDefault
--with-compiler=CCUse CC as compiler(probed)
--prefix=DIRInstall under DIR/usr/local
--bindir=DIRInstall programs into DIRPREFIX/bin
--exampledir=DIRInstall examples in DIRPREFIX/share/examples/sys161
--docdir=DIRInstall docs into DIR[PREFIX/share/doc/sys161
--mandir=DIRInstall man pages into DIRPREFIX/man
--develDeveloper modeoff
--debugTurn on debug symbols for sys161 itselfoff
The configure script requires one additional argument: the processor type. For now there is only one processor supported, mipseb, so always supply that.

Thus to configure to install in your home directory you might do

	./configure --prefix=$HOME/sys161 mipseb
Note that, because of the way the Unix shell handles ~, if you use ~/sys161 instead of $HOME/sys161 it won't work.

Now compile and install by typing
	make
then
	make install

If the compilation fails, please file a bug report.

If you get errors caused by make, such as

	make: Missing separator
or
	gcc: No input files
try using GNU make (or BSD make). There are a number of dialects of the old AT&T make around, and some of them do not work very well. Very old versions of BSD make may also have problems.

This compiles and installs two versions of the simulator: sys161, the normal or "fast" simulator, trace161, which is the same as sys161 but has lots of debugging and diagnostic support built in and thus doesn't run as quickly. It also installs two support programs: hub161, a tool for connecting multiple copies of System/161 together into a virtual network, and stat161, a tool for printing the internal performance counters. See below for more information.

What's Installed

Assuming the default installation directories, and version 1.15, System/161 installs the following:

/usr/local/bin/sys161-1.15
The fast version of the simulator.
/usr/local/bin/trace161-1.15
A slower version of the simulator with tracing and profiling support.
/usr/local/bin/stat161-1.15
A tool for monitoring the simulator.
/usr/local/bin/hub161-1.15
A tool for linking multiple copies of System/161 together to form a virtual network.
/usr/local/bin/sys161
Symbolic link to the last installed sys161 version.
/usr/local/bin/trace161
Symbolic link to the last installed trace161 version.
/usr/local/bin/stat161
Symbolic link to the last installed stat161 version.
/usr/local/bin/hub161
Symbolic link to the last installed hub161 version.
/usr/local/share/examples/sys161/
Directory containing example config files.
/usr/local/share/doc/sys161/
Directory containing this documentation.