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. Note that instead of using the latest version, which is 1.4.1 (or later), we will use 1.2.1!

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.cs.umd.edu . So it will be something like:

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

Compiling your kernel

To build the project, use gmake instead of make; GeekOS requires gmake (GNU make utility).

Running your kernel on top of Bochs

Once you have the kernel build, it's the time to run bochs and load your kernel into it. Bochs is installed in
/usr/local/bochs-1.2.1
on the linuxlab cluster. If you are working on one of the workstations in the linuxlab room, just go to your project's directory and run bochs. (Make sure you run it from your project's 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.)

For example, if your workstation's IP address is 128.8.17.52, the second command will be:

xset +fp tcp/128.8.17.52:7100

To find out what your workstation IP address is, you can do:

host $HOST