Introduction

In this course we will implement a big project in subsequent phases. In each project we will be adding some new functionality to GeekOS . To run our OS, we need to either use an actual machine (which must be an x86 machine) or the other (simpler) idea is to use an emulator; we will use Bochs, version 2.0.2.

Linuxlab

You will do all of your development for this course on the linuxlab cluster. You have received a user name and a password during the first week of classes, and will use that to access the cluster, and the lab. If you haven't, please contact you professor to get one, as soon as possible. The lab is located in 3107 CSI (the new Computer Science Instructional Center)

To access the cluster remotely, you have to use ssh (it doesn't accept telnet requests). The domain name is linuxlab.csic.umd.edu . So it will be something like:

ssh -l <your username> linuxlab.csic.umd.edu

Compiling your kernel

First of all you need to have bochs in your PATH.
If your shell is csh (default on Linuxlab), add them with

$ setenv PATH /usr/local/bochs-2.0.2/bin:$PATH

If your shell is bash, add them with

$ export PATH=/usr/local/bochs-2.0.2/bin:$PATH

Now you can download and compile the kernel

Note that GeekOS requires gmake (GNU make utility) instead of make.

Running your kernel on top of Bochs

Once you have the kernel built, it's the time to run bochs and load your kernel into it. Bochs is installed in
/usr/local/bochs-2.0.2
on the linuxlab cluster. If you are working on one of the workstations in the linuxlab room, just go to your project's build directory and run bochs.

$ bochs
(Make sure you run it from that directory so that it can find the .bochsrc file which is given to you, and tells bochs what to do.)

If you are working remotely, e.g. from your WAM/Glue account, first download the fonts file, and uncompress/untar it in your account. then do:

xset fp+ <the font directory in your account>
For example, if you have saved the files in the directory ~/fonts, and your user name in WAM is bob, do
xset fp+ ~bob/fonts

After this, do

xhost +
and then you must be able to run bochs from your linuxlab account , and have the output on your WAM/Glue X session.

Note: you have to do these two steps every time you logon to your account. Also, the second step is sort of dangerous, because it enables clients from any host to connect to your X session!

Adding the fonts in WAM

Unfortunately, there is a problem with WAM's font server, which makes adding the fonts need more steps. Specifically, instead of
xset fp+ <path>
do the following if you're working from a WAM workstation: (Again, these have to be done from your WAM account, and the text in bold must be entered as is.)