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.
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: 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).