For the project, we shall use the OSP/2 system, a simulated environment for OS design. OSP simulates the events that result from the execution of processes that run in a normal system as well as various hardware events. Your job is to write several OS modules over the course of the semester that react appropriately to these events.
Details of how to do this are provided in the OSP/2 manual. The manual describes the system-call interface for each OSP module and gives an overview of what each module is supposed to do. The interface description does not supply all the details, however. These are left for you to figure out (based on your knowledge of the course material)!
The programming language to be used in the project is Java with JDK 1.2.2. To use Java in the UG lab, put the following in your ~/.cshrc file, if you are using CSH or TCSH:
setenv PATH /usr/local/jdk1.2.2/bin:$PATHor the following in your ~/.bashrc or ~/.profile, if you are using BASH, KSH and related:
PATH=/usr/local/jdk1.2.2/bin:$PATH export CLASSPATH JAVA_HOME PATH
You should use the Undergraduate Computing Lab, right next-door to the CS
library. The lab can be accessed by a special access card. You have to
purchase this card (from the undergraduate secretary), which also allocates
certain budget for printing in that lab.
To enable us to check your CVS log and to run and grade your project, you
must do this:
Important:
Make sure that your home directory has mode 711 and the ~/.ssh directory
has mode 700. This is what the first few instructions above are supposed to
achieve. With mode 711, your directory becomes searchable (though not
readable), so you might want to change permissions on your subdirectories to
disallow read access completely.
To learn more about CVS, type ``man cvs''. Much more information is available
at: http://CVShome.org. Additional info (if
you are really hungry for it) is also available at http://www.loria.fr/~molli/cvs-index.html
.
Another useful site is http://www.refcards.com/about/cvs.html,
which publishes various reference cards.
I prepared a short summary (absolutely the bare minimum) of what you need to do to create your own CVS repository for
this course.
Here is a tutorial about the use of CVS
(and some info about SSH).
If you have a Unix box at home, it is also possible to arrange to access your
repository (located on the UG lab's machines) remotedly, through CVS and SSH.
SSH is a replacement for rlogin/rcp/etc., but it is secure. Passwords don't fly
back and forth unencrypted, because SSH uses RSA public key encryption.
Type ``man ssh'' for more information on SSH.
If this still looks murly to you, use your favorite search engine and type "ssh
tutorial". You will get more hits than you care about.
You can download a copy of SSH for your home computer (only the Unix versions
are free of charge, i.e., Linux, FreeBSD, etc.) from http://www.ssh.com/download/.
Please read the
OSP manual for general information about OSP
as well as the specifics of the projects.
You don't have to buy a card to get an account. For example, you can use the
account by logging in from home. To request an account in this lab, click
on the "Request account" link on the UG
lab home page, and follow the directions.
Can I work with a partner?
You are to work alone on the first programming assignment.
Using Version Control System
You must use the Concurrent Version Control
System (CVS) in your project. No project will be accepted
without first checking the history of changes made to the project
through the CVS system AND making sure that substantial activity was happening
there over a period of time.
cd ~
chmod 711 .
mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
touch ~/.ssh/authorized_keys2
cat ~cse306/id_cse306.pub >> ~/.ssh/authorized_keys
cat ~cse306/id_dsa_cse306.pub >> ~/.ssh/authorized_keys2
Which editor?
We suggest that you use XEmacs. It has a nice interface to CVS, called pcl-cvs,
which releaves the user from having to remember most of the command line CVS
instructions. Most of the CVS commands are available through the Tools/PCL_CVS
menu of XEmacs. After you invoke cvs-update or cvs-examine command,
XEmacs will put you into a special CVS buffer. At this point, you should see a
new menu called CVS. There are many more CVS commands under this menu.
Using Secure Shell
Description of Project Assignments