Programming Projects
CMSC 421, Fall 2004
Goals
The aim of projects in this course is rather simple -- to
make you
work with a real operating system (in our case, Linux) , and to understand
how to
modify and add functionality to it. Many of the ideas that underlie
operating
systems design, which we will cover in class, become clear only when used
in
practice -- in creating/coding a real operating system. Of course, we
don't expect
you to design a brand new one, just to add features to an existing one.
Even though
most of you will never design and implement an OS yourselves, the
understanding you
gain by knowing how to tweak an OS is invaluable as a tool in your other
"complex" coding endeavors. The projects here will also allow
you (and
need you) to bring to bear all the skills you have learnt in the run up to
this
course -- programming skills from 201,202, and 341; basic hardware
knowledge from
CMSC 313 or CMPE 310 and 312; and software design skills that those of you
who have
done 345 would have !
picked up.There will be three projects with the final project due
towards the
very end of the semester. The first two projects are designed to get you
comfortable with installing and compiling Linux, and get used to the idea
of
modifying an OS which will actually run you machine. They are worth 25 and
75
points, respectively. The third and final project is the real deal -- you
will be
asked to add an interesting "new" feature to Linux. That will be
worth
125 points, and you will get close to 8 weeks to implement it. Use that
time
wisely, almost all of it will be needed!
Points: 25
Released on : Sep 7th, 2004
Due
: Sep 23rd, 2004 (Extended from Sep 21st)
Points: 75
Released on : Sep 30th, 2004
Due
: Oct 20th, 2004
Points: 125
Released on : Oct 25th, 2004
Due
: Dec 14th, 2004