CSE306 -- The Project

General

For the project, we shall use the OSP 2 system -- a simulated environment for OS design. OSP simulates the events that come from the processes that run in a normal system as well as the various events that come from the hardware. Your job is to write several OS modules that react to these events.

Details of how to do this are given in the OSP 2 manual, which explains all the necessary interfaces that you need in order to write the OS modules assigned to you. It also provides the overview of what each module is supposed to do. The interface description does not supply all the details, however. These details are left for you to figure out (based on what you learn in this course)!

The programming language to be used in the project is Java with JDK 1.8. To use Java, add your Java bin folder to the PATH environment variable (in Linux, Mac, or Windows) and also set JAVA_HOME to point to the JDK's folder. Without setting these properly, you will not be able to use OSP 2. For instance, in Linux and Mac, you might want to put somethink like this in your ~/.bash_profile or .bashrc (whichever is correct for your system):

PATH=/usr/local/jdk/bin/:$PATH
JAVA_HOME=/usr/local/jdk
export JAVA_HOME PATH
NOTE: the actual path names are likely to be diferent for your particular system.

In Windows, you need to edit the PATH environment variable. For instance, in W10, search for "Edit the system environment variables". Be careful not to mess up PATH, as this will likely hurt other programs on your machine. It is also possible that the Java installer has already changed PATH appropriately, so you will only need to add JAVA_HOME.

Where should I work?

Anywhere where your laptop can be pluged in.

Can I work with a partner?

No.

Description of Project Assignments

These will be posted to Blackboard.

Code Repository

You will be required to maintain your code in private Git repositories on Github Classroom. If you do not have a Github account, get one now, before things get busy.

In due time, I will provide links to the course git classroom projects. When you click on such a link and confirm, your repository for that project will be created inside the course classroom. There will be different repositories for each project.

We recommend that you do not use command line interface to Git but rather one of the graphical front-ends, such as SmartGit or GitKraken, which work on all platforms. On Windows, you can also use TortoiseGit and SourceTree. The latter also works on the Mac. A general Git tutorial:

A short video tutorial:

Note: for this project you will likely need only the basics like cloning, pulling, pushing, staging, and committing.