The following instructions describe how to install OS/161 into your account in the student.cs computing environment.
linux.student.cs.uwaterloo.caThis will automatically choose a specific Linux machine to log you into.
CSCF maintains a page that provides more information about all of the servers available in the student.cs computing environment, in case you'd like more information. However, all of your work should be done on one of the Linux servers.
Start by logging in to your account and modifying your PATH environment variable to ensure that various OS/161-related development tools are available. Your PATH is normally set in your shell's startup file each time you log in. There are many different shells available, and each of the shells typically uses a different name for the startup file (or may have multiple startup files). In the student.cs environment, the default shell is either bash or tcsh. If you are using a different shell, you should consult the man page to determine the names of the startup files. You can determine which shell you are currently running using the command echo $SHELL or echo $0. You can change the default shell for your account using the chsh command.
Some scripts for the course use tcsh, so you must set the PATH environment for tcsh even
if you are using a different shell. To change the path, look in the
.cshrc file in your home directory
for a line that looks something like this:
setenv PATH `/bin/showpath standard`
and change it to look like this:
setenv PATH `/bin/showpath /u/cs350/sys161/bin /u/cs350/bin standard`
Users of bash should change a similar line in their .bashrc or .profile file (also in their home directory). On some versions of Linux, the change mush be made in the .bashrc file.
Look for a line like this:
export PATH; PATH=`/bin/showpath standard`
and change it to this
export PATH; PATH=`/bin/showpath /u/cs350/sys161/bin /u/cs350/bin standard`
In another window log in and test to see if your modifications have worked.
If you type:
You should see:
If you do not then your path has not been set up properly.
To ensure that this also works with csh/tcsh, type the following:
Again you should see:
If you are having problems please consult this documentation: A bit more information about setting up your shell.
Note that you will need to log out and log back in again so that this PATH change will take effect. You can check the current setting of the PATH environment variable using the command
Now you are ready to get a copy of OS/161.
Starting in your home directory, issue the following commands:
tar -xzf /u/cs350/pub/os161_repository/os161.tar.gz
If you are planning to use git, CVS, SVN or some other revision control system to manage the OS/161 source code (which is a good idea), this is the right time to get that set up. Put your copy of the OS/161 code under revision control, then create a working copy under cs350-os161 which you can work with. Proceed to Step 3 using your working copy.
The next step is to configure OS/161 and compile
From the cs350-os161 directory, do the
./configure --ostree=$HOME/cs350-os161/root --toolprefix=cs350-
The string ASST0 in the commands above indicates that you are working on assignment 0. For Assignment X, replace ASST0 with ASSTX in the commands above. The bmake install command will create a directory called $HOME/cs350-os161/root ($HOME refers to your home directory), into which it will place the compiled kernel in a file called kernel-ASST0. It will also create a symbolic link called kernel referring to kernel-ASST0. Check the $HOME/cs350-os161/root directory to make sure that your kernel is in place.
Next, build the OS/161 user level utilities and test programs:
You should now be able to use the SYS/161 simulator to run
the OS/161 kernel that you built and installed.
The SYS/161 simulator requires a configuration file in
order to run. To obtain one, do this:
cp /u/cs350/sys161/sys161.conf sys161.conf
If you are running on a home machine or laptop it is best to get a copy from the student.cs machines (e.g., using scp or sftp). For a quick test you can try using a copy of the sys161.conf file like this:
cp $HOME/sys161/sys161.conf .
NOTE: you should remember to get a copy from the student.cs machines in case there are local changes in that copy that you need
Now run your compiled kernel on the simulator. Assuming that you're still in the $HOME/cs350-os161/root directory, do this:
You should see some output that looks something like this:
sys161: System/161 release 1.99.06, compiled Aug 23 2013 10:23:34 OS/161 base system version 1.99.05 Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 President and Fellows of Harvard College. All rights reserved. Put-your-group-name-here's system version 0 (ASST0 #1) 316k physical memory available Device probe... lamebus0 (system main bus) emu0 at lamebus0 ltrace0 at lamebus0 ltimer0 at lamebus0 beep0 at ltimer0 rtclock0 at ltimer0 lrandom0 at lamebus0 random0 at lrandom0 lhd0 at lamebus0 lhd1 at lamebus0 lser0 at lamebus0 con0 at lser0 cpu0: MIPS r3000 OS/161 kernel [? for menu]: