The OS/161 kernel hacking projects are based on a very minimal implementation of the OS/161 operating system, which is derived from Unix-like operating systems, but made much simpler. In this course, we will implement some kernel level functionalities for OS/161.
For all our OS/161 kernel hacking projects, we will be using Zeus (zeus.vse.gmu.edu or zeus.ite.gmu.edu), which is a GMU student computing environment running a Unix-based operating system. You will have to download the base OS/161 source code to your Zeus account, and then incorporate various modification on to it. This kernel source code will be compiled into an operating system binary, suitable for running on a MIPS machine. The sys161 simulator, which is already installed on Zeus, can simulate a MIPS machine at the hardware level and execute the OS/161 binary.
As the first step, you will need to download the OS/161 distribution you will be working on. Be sure to type the commands by hand in to the command prompt (it may not work if you use copy/paste.)
To login to Zeus, ssh to zeus.vse.gmu.edu using your GMU username and password
% ssh netID@zeus.vse.gmu.edu
In your home directory, create a subdirectory named tmp:
% mkdir ~/tmp ; cd ~/tmp
Then get the os161 distribution you will be working on by entering the following on the command line
% cp /usr/local/shared/cs471/os161-1.11/os161-1.11.tar.gz .
Note there is a dot ( . ) at the end of that line, this is important to copy the file to your current directory.
Next, untar the file you just downloaded:
% tar –xzf os161-1.11.tar.gz
Finally issue the module load command to load the os161 toolchain:
% module load sys161/2.0.8
Optionally, you can add the above “module load” command to the end of your ~/.bash_profile
file. That way, you won’t have to type it every time you log-in to Zeus.