Meeting Time: M/Th 2:10pm - 4:00pm
Location: Dickinson Computer Science Lab (Dickinson 233)
Office Hours: M 1-2pm, W 1:45-2:45pm, F 10-11am, Dickinson 211
Course Web Site: http://cs.bennington.edu/courses/s2014/cs4152.01/
Students will study the theory and practice of operating system development. Topics will include processes, memory management, threads, i/o, file systems, scheduling, naming, security, and current trends in operating system design (low-power systems, mobile computing, hardware disaggregation). Students will read key research in the field, as well as engage in several moderate-intensity programming projects to solidify core concepts in the systems programming space. Students will also have the opportunity to work in groups to specify their own "dream OS", which they will defend as part of a group critique.
- Rohail Altaf
- Erick Daniszewski
- Klemente Gilbert-Espada
- Torrent Glenn
- Logan Traynor
- Brendon Walter
In this class, students will become familiar with core operating systems principles via experimentation on an embedded operating system for the ARM11 (ARMv6) platform, commonly used in various mobile devices and the Raspberry Pi (which the class will be using).
Students will also gain a working knowledge of ARM11 assembler, as well as a broader knowledge of assembly language.
Students will also become conversant with basic systems programming in C.
FORMAT & WORKLOAD:
This class will be organized in a similar manner to Distributed Systems, but witout a lab. Class sessions will balance between topical discussion, lab work, and project work. Collaboration and group problem solving will be required. What doesn't kill you makes you stronger, right?
There is no required textbook for this class. Andrew Tanenbaum's Modern Operating Systems (any ed.) is a handy companion to the class, and incredible book and is also available on loan from Andrew Cencini or Crossett Library.
- You will attend every class. More than two absences (excused or unexcused) will jeopardize your standing in the course.
- You will check-in all required assignments prior to the start of the class in which they are due.
- You will be a productive and positive collaborator with your colleagues.
- You will be an attentive and positive contributor to class discussion and activities.
- You will seek out help promptly if you are struggling or falling behind.
- You will submit your own ideas and work. Academic dishonesty will not be tolerated, and will be passed along without exception to college authorities.
I strongly advise you to take this class Pass/Fail if you are nervous about grades. This material and way of thinking is likely to be new to many students, and represents a substantial challenge - anxiety over letter grades only increases this challenge and can pose a severe distraction from the subject matter. We all are likely to have way more fun if you're not preoccupied with a letter grade.
- Class participation and attendance (40%).
- Assignments and excercises (30%).
- OS Project (30%).
If you are struggling in class, or would like to investigate a topic in greater depth, come see me. My office hours are listed on the top of this syllabus. I enjoy and look forward to meeting with you – some general guidance on making sure we are able to meet:
- I strongly prefer email (email@example.com). I am on it way too much, so you'll likely get a reply within 24 hours unless I am extremely busy, it is a weekend or holiday period.
- If you would like to meet with me, please consult my schedule (located at http://cs.bennington.edu/people/acencini) and propose a date and time that is not generally booked.
- If you plan to drop by during my office hours, I strongly recommend that you email in advance - I like to know if you are planning to show up, and can also let you know if there might be a wait.
- If you need to meet me outside of my office hours, I need at least a day's advance notice so I can ensure we can find the best time to meet.
Everybody works differently; however, unless you are extremely confident in your abilities, start early and make sure you are not tight on time.
Reading and Assignments will be disseminated in class.
Week 0: Week 1: Week 2: Week 3: Week 4: Week 5: Week 6: Week 7: Week 8: Week 9: Week 10: Week 11: Week 12: Week 13: Week 14: