CS 1550: Introduction to Operating Systems
Programming Assignment #1: Installing an Operating System
Due Date: Friday, Jan 23, 2004, 5pm
The Basics
The goal of this assignment is to get everyone up to speed on system
installation and to gain some familiarity with the process and woes of
installing and operating system. A secondary goal is to use some of
the system administration (sys admin) tools provided in the
Unix environment. In this assignment you are to install an Operating
System; talk to your friends, read newsgroups, search the web. Choose
a unix-based operating system: Linux, some BSD variant (FreeBSD,
OpenBSD, etc), Solaris, OS X, you name it.
The requirements for completing this assignment successfully are the
bullets described under The Rest. If you want to experiment
further (and you should!), play with the OS, read the kernel, read on
how methodologies to do kernel debugging (understand why it is
difficult), read on how to create kernel modules, read onhow to to
compile replace a kernel for testing (e.g., why you should keep the
old version in place), how to create a multi-OS environment, etc. In
summary, prepare yourself for the times to come.
The Rest
You will need a PC with a CD-RW drive and a blank CD. You should have
a fast internet connection (or friends or cash to pay for the CD distribution).
After you choose your favorite Operating System, you should choose your
favorite distribution (e.g., Linux has several sites that offer OSs with different types of installation scripts, tools, and facilities). For example, if you're going to use FreeBSD:
- Go to the FreeBSD website,
download any recent version (e.g., 4.9 or 5.2).
- Burn the installation CD.
- Get a PC and install FreeBSD 4.8. You may configure the system as
you like. You should configure XFree86 for X window system.
- Install any tools you need. We STRONGLY recommend you to use the
machine for your daily "life", from now on. If possible, make
your machine "dual booting" system. If you need any windows
application, find and use a compatible one that works on
Unix. For example, if you need a word processor, use emacs/vim
and latex. If you can't shake old habits, OpenOffice is a very
strong candidate for a "compatible" word processor. If you need
Java environment, use the freely-available JDK. If you need to
plot results, use gnuplot.
- Send the TA output from the boot sequence, showing your new
installation; pick a few (at least 10) lines from the boot messages, examine
those lines, and make comments on those lines. You can get the
boot messages from "dmesg" (do you need to run it as root?)
This project is to be individually. You are not allowed to ask
questions (friends or live chat), unless you're really stuck. Most of
the questions you might have will be found on the Web, and it is an
important part of your training.