OS/161 Setup On macOS
Written by Luka Kerr on December 1, 2018
Installing and Running OS/161 on macOS
This is a simple line by line tutorial on how to install and run os161 on macOS.
It assumes you have Homebrew installed.
I found it quite tedious to install the toolchain on macOS just by reading the Harvard guidelines, and installing on a Mac with Homebrew simplifies things a bit.
If you face any issues, leave a comment and i’ll be happy to help.
Installing the OS/161 Toolchain
# We will run these commands from ~ but this can be changed to anywhere
cd ~
# Make necessary directories
mkdir ~/os161
mkdir ~/os161/toolbuild
mkdir ~/os161/tools
mkdir ~/os161/tools/bin
# Download necessary files
# Not all files from the OS/161 website are needed, some will be installed with homebrew
wget http://os161.eecs.harvard.edu/download/os161-base-2.0.3.tar.gz
wget http://os161.eecs.harvard.edu/download/gcc-4.8.3+os161-2.1.tar.gz
wget http://os161.eecs.harvard.edu/download/sys161-2.0.8.tar.gz
# Extract all files from tarballs
tar -xvzf os161-base-2.0.3.tar.gz
tar -xvzf gcc-4.8.3+os161-2.1.tar.gz
tar -xvzf sys161-2.0.8.tar.gz
# Install needed binaries
brew install binutils
brew install mpfr
brew install libmpc
brew install gdb
brew install bmake
brew install make # this installs `gmake` or GNU make
# Install gcc 4.8
cd gcc-4.8.3+os161-2.1
find . -name '*.info' | xargs touch
touch intl/plural.c
cd ..
mkdir buildgcc
cd buildgcc
../gcc-4.8.3+os161-2.1/configure \
--enable-languages=c,lto \
--nfp --disable-shared --disable-threads \
--disable-libmudflap --disable-libssp \
--disable-libstdcxx --disable-nls \
--target=mips-harvard-os161 \
--prefix=$HOME/os161/tools
gmake
gmake install
cd ..
# Install System/161
cd sys161-2.0.8
./configure --prefix=$HOME/os161/tools mipseb
make
make install
cd ..
Building OS/161
# Configure os161
cd os161-base-2.0.3
./configure --prefix=$HOME/os161/tools mipseb
# Build userland
bmake
bmake install
# Configure kernel
cd kern/conf
./config DUMBVM # this can be any conf, we will use DUMBVM
# Compile kernel
cd ../compile
bmake depend
bmake
bmake install
Running OS/161
cd ~/os161/root
sys161 kernel