Course Information for Operating Systems II (CS 4750) Spring Term 1997 INSTRUCTOR: Prof. John Sarraille OFFICE: CS 102B, Cal State University, Turlock OFFICE HOURS: T 10-11, T-Th 13:30-15:30, or by appointment PHONE NUMBERS: Office 667-3345, Dept. 667-3185 BASIC SCHEDULE INFO: Class is 7-10 p.m., Tuesdays CLASS ROOMS: CS-102 & D-027 TEXTS: 1. "The Design and Implementation of the 4.4BSD Operating System" by Marshall McKusick, Keith Bostic, Michael Karels, and John Quarterman, published by Addison-Wesley 2. "Unix System Administration Handbook" (2nd ed.) by Evi Nemeth, Garth Snyder, and Scott Seebass, published by Prentice Hall PREREQUISITES: Operating Systems I (CS 3750) OBJECTIVES: To gain familiarity with the UNIX Kernel while learning about modern trends and research in operating systems theory; to learn about being the administrator of a Unix system or a network of Unix systems; and to get practice working with UNIX system software (e.g. porting software among Unix systems). The material we will be studying is extensive and complex. We should all expect to learn from each other -- I include myself in that. MODALITIES: Since there are people who want to take this course pretty-much- exclusively for the system administration content, and since those folks, for the most part, do not have the formal prerequisite of the equivalent of CS 3750 (Operating Systems I), I am going to allow people a choice of what modality in which to pursue the course: MODE I: In this mode, you will do the lab projects and the reading out of the system administration book by Nemeth. The homework questions and test questions you get will all be out of Nemeth. You will receive full credit for your work in the course, but the course will *not* count as an elective in the Computer Science Major. MODE II: In mode II, you will do everything that one does in mode I plus you will do the reading assignments out of the book on Unix kernel internals, and you will get homework questions and test questions covering this material, in addition to the questions on the Nemeth material. For your trouble, the course *will* count as an elective in the Computer Science Major. For those of you who want to take the course for credit, and who do not have the prerequisite of CS 3750 or the equivalent, I am only offering you one choice: Mode I. COVERAGE: There is a lot of material to cover. I calculate you will need to read close to 60 pages per week. (It will be 36 pages, if you are in Mode I). Roughly, I want you to get through chapters 1-6 and 13 in text #1 above, chapters 1-6, 11-12, 14-18, 21-23, 25-26, and 31- 32 in text #2. I may add some reading assignments later. Maybe I'll choose one or two papers to assign you to read. Besides that, there will be some coverage of problems encountered installing Linux and related software on Intel platforms. TESTS & GRADING: There will be three course components: written homework, project, and course exams. There will be approximately 5 written homework assignments, 1 course project, and 2 course exams. Homework will consist of exercises covering what you are reading in the texts. Your project will be a term-long assignment to install and configure system software on Linux/Unix workstations. You will do project work in teams of two persons. Each team will be expected to keep a detailed and complete journal that describes what the team is doing, and each important development in the project. This journal will be turned in (by e-mail) each Friday for my review. Using the journals, the team will write a report, stating who did what, what problems were encountered, and what the participants feel they learned from doing their project work. The report must contain input from both team members, and the report must be presented orally by the team at the end of the term. A hardcopy of the report must also be turned in at the end of the term. The grade on the project will be based on the quality of the journal, the report, and what you appear to have accomplished and learned by doing the project. I will have weekly conversations with the teams in order to monitor the progress of the projects. I have placed many suggested project activities in the tentative course schedule document. During our weekly conversations, we will work out the details of exactly what you will be doing in your projects. Typically your course project will not be "one big thing". It will be a series of varied system administration tasks. There will be two in-term examinations. The first exam will be given at the end of the sixth week of the semester (just before Spring break), and the second exam will be given near the end of the term. The second exam will not be "comprehensive". There will be no final exam. Instead we will do the oral presentations of the project reports during our designated final exam time on Tuesday May 27. Under normal circumstances, homework, project, and tests will each be given a weight of 1/3 in determining your grade. (Each of the two tests will count 1/6). The exception to that rule is that you are not allowed to pass the course if you are too deficient in any one of the three course components. You must have a passing average in each of: the written homework, the project, and the course exams. LATE ASSIGNMENTS: Late assignments will not be accepted. PROBLEMS: If you have a problem that is going to interfere with your class work, please discuss it with me at the earliest possible time, well *before* it causes you to miss an assignment or an exam. PARTICIPATION: I want to be accessible and helpful to you during this course. I want you to get as much as possible out of it. But remember education is a two-way street. You have to do your part by participating. Attend class. Listen. Take notes. Review your notes before each class. Do assignments and reading on time. Reply to questions. Ask questions. Make remarks. If you have something half-way interesting to say, say it! You don't have to stand on ceremony. Come to office hours or see me after class if you want to discuss something one-on-one. And come to class prepared to have fun!