OS Internals - CS 572/Spring 2004 Jim Binkley Syllabus -------- Class time: M/W, 10-11:15 Classroom: PSU, SBII 139D Office(jrb): FAB 120-14 Email: Jim Binkley: jrb@cs.pdx.edu Office hours: Jim Binkley, M/W 8:00-9:00 or by appointment. Feel free to make an appointment via email. Please do not show up and expect to be entertained otherwise. home page: Jim: http://www.cs.pdx.edu/~jrb/ui.html mail list: cs572@cs.pdx.edu Text/s: required: TCP/IP Illustrated, Volume 2. Gary Wright, W. Richard Stevens. 1995, Addison-Wesley, ISBN 020163354X. Note: Please bring the TCP/IP Illustrated Volume 2 book to class for the entire quarter. IXP2400/2800 Programming. Erik J. Johnson, Aaron R. Kunze. 2003, Intel Press, ISBN 0-9717861-6-X. Prerequisites ------------- Students must... - be familiar with the functions of a modern multiuser operating system (equivalent to what is learned in CS333 or CS 533), - be familiar with TCP/IP Internals. - be familiar with C. - have the ability to send Internet e-mail to the address above. Class Overview -------------- The class will have two major functions: 1. to read in-class a book on the internals of the BSD TCP/IP stack, and 2. to use the IXP2400/Linux boxes in the netlab to work hands-on with the Intel IXP2400 Network Processor Family. We will call these functions: "code walkthru" and "kernel project". In general, Jim will be in charge of any class work, tests, and the like, and Chris Hall (TA) will be in charge of labwork. Chris will also have a couple of classes outside class time in which he will instruct students in how to get started with the 2400 microengine systems. The "code walkthru" section will basically cover in-class the chapters out of the BSD book, including mbufs, IP, ICMP, UDP, TCP, etc, depending on how far we will get (we will ignore the routing chapters, and probably won't make it to the TCP chapters). Jim will introduce the BSD Stack internals architecture, and lead students thru the text in class. Please always bring the text to class. We will ask students to go through a couple of 2400-based exercises, and then work on some network-related monitoring system based on the 2400. More details will be given as the class unfolds. Note that our TA Chris Hall, will present some very important "hands-on" training in the early weeks of the class. Calendar (will slip, if necessary) ----------------------------------- The BSD book will be done mostly in order, from Chapter 1 on. Students are strongly urged to try and read the chapters (1-2 to start with) before class. When What Assignments ---- ---- ----------- week of March 29/31 intro ... start chap 1, first IXP assignment given this week (do chapter 4) April 5 ... more BSD etc./some IXP ... April 12 ... more BSD etc. IXP chapter 5 April 19 etc Apri 26 etc May 3 etc/review May 5 midterm IXP assignment for the rest of the quarter May 10 more BSD May 17 more BSD May 24 more BSD May 31 (mon)-June 2 memorial day holiday/last week final IXP assignment due June 2, thursday at class time June 7 finals week, we will have a final at the University appt. time According to the ever whacky PSU finals schedule, the final will take place at: Tuesday, June 8, 8:00-9:50 Initial Assignment ------------------- 1. Use the World Wide Web and take a look at the instructor's home page and the home page (under construction) for the class; i.e., http://www.cs.pdx.edu/~jrb http://www.cs.pdx.edu/~jrb/ui.html 2. subscribe to the class majordomo email mailing list. To subscribe send the following message via SMTP/Internet email: To: majordomo@cs.pdx.edu Subject: -------- subscribe cs572 If you drop out, please unsubscribe. Send email as above to majordomo and make the body "unsubscribe" (without quotes) IXP assignments ---------------- Students will be divided up into teams. We have approximately 6 IXP systems, so teams will probably be on the order of 3 students apiece. Roughly we will do the following: 0. Chris will schedule at least one hands-on session, maybe two to get you going with the IXP2400 systems. 1. code up chapter 4. Use the modified-by-Chris code on the ui home page for chapter 4. Do both simulation and hardware, and turn in a one page report, to summarize and explain how you did. The goal is to prove that you did the work. 20/20 points 2. code up chapter 5. Same drill as above. 30/30 points 3. we will create a third IXP assignment (for the latter half of the quarter), that will involve one of the following: .port the BPF (from the 1200 earlier port, or anew) to the IXP system. .create a top-N linked list-based flow counter on the 2400 system. This should be analogous to one of the topN mechanisms that currently exist in ourmon (ourmon.cat.pdx.edu/ourmon). .you design your own experiment. You should propose your experiment by mid-term time. Grading ------- Midterm 100 Final 100 In class contributions 100 Programming Assignment 100 Regarding "In class contributions": The class will be considered a seminar. Students are expected to not be passive, to ask questions, and to help the instructor discuss things as we go along. Yes, the instructor will lead us on our pilgrimage into the wonders of the BSD TCP/IP stack. Still, students will be expected to contribute. Showing up late, not at all, not bringing the text, never asking a single question, will not be regarded favorably. Your final grade for the course is determined by determining the weighted percentage of the points you earn with respect to the total possible. Each letter grade occupies roughly a 10 point spread (A: 90%-100%, B: 80%-89%, etc).