Computer Science 4270/6270: Operating Systems
Fall 2008
- Instructor:
- Dr. Brian L. Stuart
- E-Mail:
- blstuart@bellsouth.net
- Office Hours:
- Since I am not a resident professor at the
University, there will not be regular office hours.
Of course, e-mail is welcome and (within reason) phone calls
are acceptable.
- Text:
- Stuart, B.L., Principles of Operating Systems:
Design & Applications, Cengage Learning,
ISBN 1-4188-3769-5.
- Objectives:
- In this class, we will examine the basic elements
of operating systems
design.
We will be studying the internals of the Inferno operating system
in substantial detail.
- Topics and coverage:
- This list of topics is tentative, but we
will likely follow it pretty
closely.
- Basic OS concepts --- Ch 1, 3
- Hardware foundations
- Process management --- Ch 5, 7
- Memory management --- Ch 9, 11
- Device management --- Ch 13, 15
- File systems --- Ch 17, 19
- Security --- Ch 21
- Selected topics in distributed systems --- Ch 22
- Grading:
- There will be several programming projects
in this class which
will comprise 40% of the grade.
In addition, there will be several problem sets worth a total
of 20%.
The remaining 40% will be ascribed to a midterm exam (15%) and
a final (25%).
- Suggested Additional Readings:
-
While we won't cover them in class in detail, the material in
Chapters 2, 6, 10, 14, and 18 also provides good background.
Additionally, the text lists some other sources of outside information.
You will not be tested on any of the material in these sources
except for any which may be covered in class.
- Assignment Guidlines:
- For all problem sets and programming
projects, you are encouraged
to discuss the assignments and solution strategies together.
However, the collaboration stops there.
All written solutions and code must be the result of individual
effort.
- Project Submissions:
- You may submit problem sets and projects
either on paper or
electronically.
Electronic submissions are, however, subject to some constraints.
I do not have the time, money, disk space or inclination to support
every commercial, proprietary, closed, undocumented word processor
format out there.
For that reason, I do not accept submissions in any of them.
You must submit your assignments in an open well-documented
format.
The best is plain ASCII text (preferably in-line rather than as
an attachment).
If you need to express equations or some other material that you
feel you can't express well in plain ASCII, then I encourage you
to use a typesetting language such as troff or TeX.
If you are, for some reason, married to your word processor, then
either save to a PostScript or PDF file and send that or just
turn in a hard copy.
When sending modified source code files, do not re-type them into
a mail user agent.
There will enevitably be error in re-typing and errors that would
prevent your assignment from compiling or working correctly
will be counted against you.
- Project Development Environment:
- All of the programming
assignments in this class involve modifications
to the Inferno operating system.
Inferno can run as an application on top of other operating
systems including Linux, FreeBSD, Solaris, Plan9, Mac OSX, and the NT variants
of Windows (NT, 2000, XP).
For Linux, FreeBSD, Mac OSX, and Solaris the gcc compiler is used, for Plan 9 the
8c compiler is used.
If you choose to use Windows as your platform, there are a number
of options:
- Use a regular distribution of the MS VisualC compiler.
The most recent versions of this are part of the .NET suite.
Which versions of their compiler work well for compiling Inferno
is a little hit and miss, but it can generally be made to work and
the Inferno mailing list can be helpful.
- Use the free download version of the VC compiler from
MS.
You will need to get both the base compiler and the main
libraries.
I have some
instructions
on UMdrive for this.
- Build Inferno natively using the compiler included with
Inferno.
You'll need to be able to boot from a floppy or a CD to run your
modified Inferno.
- Install a virtualization product such as VMware, VirtualBox,
VirtualPC, or qemu and install Linux, FreeBSD, or Plan9 in that.
While you may use whatever editor you wish to make modifications,
I would suggest that it is valuable to learn to work in environments
other than point-and-click GUI integrated development environments
(IDEs).
We will spend a class day demonstrating how to install Inferno
and how to rebuild the system with changes.
- ADA Accomodations:
- Reasonable and appropriate accomodations
will be provided to students with disabilities who present a memo
from Student Disability Studies (SDS).