OS Internals - CS 572/Spring 2003 Jim Binkley/Mark Morrissey Syllabus -------- Class time: M/W, 10-11:50 FAB 150 Classroom: PSU, FAB 150 Office(jrb): FAB 120-14 Email: Jim Binkley: jrb@cs.pdx.edu Mark Morrissey: markem@cs.pdx.edu Office hours: Jim Binkley, M/W 8:30-9:30 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 Mark assignment page: http://www.cs.pdx.edu/~markem/CLASSES/OS/CS572 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. IXP1200 Programming. Erik J. Johnson, Aaron R. Kunze. 2002, Intel Press, ISBN 0-9712887-8-X. Course Pack: Various Intel IXP documents necessary for the project will be made available as a course pack at the bookstore. Optional: (these have not been ordered at the bookstore, see Powell's Technical Books or www.amazon.com or elsewhere to get them) These books MAY be helpful for the programming part of the class. 1. Linux Device Drivers. Alessandro Rubini and Jonathan Corbet. O'Reilly. ISBN: 0-596-00008-1. Jan. 2001, 2nd edition. 2. Understanding the Linux Kernel. Daniel P. Bovet and Marco Cesati. O'Reilly. ISBN: 0-596-00002-2. 2001. www.oreilly.com 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 C. - have the ability to send Internet e-mail to the address above. Class Overview -------------- The class this quarter intends to perform a pedagogical experiment. Jim Binkley and Mark Morrissey will co-teach the class. 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 linux lab to work hands-on with the Intel IXP1200 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 Mark will be in charge of labwork, however we may cheerfully interfere with each other. The "code walkthru" section will basically cover in-class the chapters out of the BSD book, including mbufs, IP, ICMP, UDP, TCP, etc. Jim will introduce the BSD Stack internals architecture, and lead students thru the text in class. Please always bring the text to class. Mark will teach students how to deal with the IXP1200 and develop code for it, and present various networking projects using it. Roughly the students will be asked to 1. put together a simple filtering project program due at the time of the mid-term, and 2. a more complex architectural development/design/code system that attempts to recreate some/all of the Berkeley Packet Filter functionality on the microcde engines of the IXP, due near the end of the quarter. Mark will have more information on this subject on his web page and in-class as well. Note that our IXP/RA Andrew Jauri, will present some very important "hands-on" training in some extra sessions to be scheduled on Fridays of the 1st three weeks of class. The dates for those sessions will be April 4/11/18. Calendar (will slip, if necessary) (TBD wrong as of yet) ----------------------------------- The times for tests and "turn-in" dates below are firm. What we will do in class however is a guess. We will discuss both the "hands-on" part in class, and of course, go over the BSD stack as well. The BSD book will be done 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 31/April intro ... start chap 1, IXP intro first IXP assignment April 7 ... more BSD etc./some IXP ... April 14 ... more BSD etc. April 21 etc Apri 28 etc May 5 etc/review May 7 midterm IXP a1 due May 12 more BSD May 19 more BSD May 26 (mon) memorial day holiday June 2 last week 2nd IXP due on MONDAY June 2 June 9 finals week, we will have a final at the University appt. time Grading ------- Midterm 100 Final 100 In class contributions 50 Programming Assignment 200 (to be determined by Mark) 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). 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 Also see Mark's assignment page/s. 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)