OS/161

Background

OS/161 is an educational operating system developed by the Systems Research at Harvard group, at Harvard University. It aims to strike a balance between giving students experience working on a real operating system, and potentially overwhelming students with the complexity that exists in a fully fledged operating system, such as Linux. Compared to most deployed operating systems, OS/161 is quite small (approximately 20,000 lines of code), and therefore it is much easier to develop an understanding of the entire code base.

The OS/161 environment consists of three major parts: OS/161 itself; System/161, the simulated machine that OS/161 runs on; and the cross development tools required to compile and debug code for the simulated machine.

Warning: Only use components of the OS/161 and System/161 environment that were obtained from here!!!

We modify some parts of the environment for local use. Hence, there are no guarantees that any local assignments will be achievable or assessed correctly if you use components sourced from elsewhere.

OS/161

The assignment specifications will contain instructions on how to get a copy of the sources for your particular assignments.

For those wishing to work at home

All the components required to work on OS/161 on non-CSE machines are provided below. Feel free to build and install them at home. However, while we make every endeavour to ensure the tools build and function for you, we cannot be responsible for them working (or not) on your machine. We have built and used the components on Linux and Cygwin.

Warning: While we provide these components for your use at home, we only guarantee our automated assessing to work on submissions that correctly build and function on CSE machines. Please make sure your assignment works at CSE before submitting it!!!

Pre-built binaries

If you use Cygwin (the free Unix environment for Windows), Mac OS X, or Linux, you may wish to try these pre-built binaries. Please report any problems with these binaries on the forums.

OS X toolchain: cs3231-osx-20060302.tar.gz (28M)

Cygwin toolchain: cs3231-cygwin-20070315.tar.gz (21M)

Linux toolchain: cs3231-linux-20070317.tar.gz (27M)

To use these binaries on Cygwin:

cd /
tar zxvf filename

To use them on Linux or Mac OS X:

cd /
sudo tar zxvf filename

Make sure that the binary directories are on your PATH.

Cygwin: export PATH=$PATH:/usr/cs3231/bin:/usr/cs3231/root

OS X: export PATH=$PATH:/usr/local/cs3231/bin:/usr/local/cs3231/root

Linux: export PATH=$PATH:/usr/local/cs3231/bin

You might want to put the PATH setup command in your .bashrc.

Building your own

If you can't or don't wish to use the above binaries, you should build your own. Follow these directions to set up the OS/161 environment at home.