Running OS/161

about OS/161 | about System/161 | project news | publications | license | credits
download | guides and resources | documentation | for instructors | bugs | mailing lists


This document assumes you have built and installed OS/161 into the directory ~/os161/root. If you are working in a somewhere else or have arranged things differently, make the appropriate substitutions.

System/161 configuration

In order to run System/161 you first need a System/161 config file, sys161.conf. Your course staff probably provides one. If not, there is a sample configuration with reasonable defaults in the System/161 distribution. Copy this file to ~/os161/root. It is commented and should be fairly self-explanatory if you need to edit it.

Running System/161

OS/161 installs its kernel as kernel, so boot it in System/161 as follows:

   sys161 kernel
When it comes up, you can shut down again either by entering 'q' into the menu or by running the poweroff utility with p /sbin/poweroff.

If you are working on a network volume, changing the configuration so that the disk image files are on a local volume will make things go quite a bit faster once you start doing the virtual memory or file system assignments. To do this, edit sys161.conf and change the paths for the files backing each disk device. Note that if you are going to put the disk images in a shared area such as /tmp, make a subdirectory there (e.g. /tmp/joe if you're Joe) and put the disk image files in the subdirectory. This prevents them from conflicting with or getting mixed up with other people's images.

When working on the virtual memory system, be sure to test with different RAM sizes. It is fairly easy to write VM code that works by accident with one specific memory size but breaks otherwise. To change the RAM size, edit the configuration line for the system board/bus controller.

If you pass an additional string on the sys161 command line after the kernel name, it will be provided to the kernel as bootup arguments. OS/161 treats these as menu commands; thus for example you can boot the kernel so it starts the shell and shuts down after the shell exits like this:

   sys161 kernel 's;q'
This allows you to avoid having to retype the same thing over and over, which can be convenient, especially when working with and mounting file systems.

System/161 also accepts various flags and arguments before the kernel name. See the System/161 manual for more information.