This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems.
We will cover key design issues in implementing an operating system, such as memory management, inter-core synchronization, scheduling, protection, inter-process communication, device drivers, and file systems, paying particular attention to system designs that differ from the traditional monolithic arrangements of Unix/Linux and Windows.
The goals of the course are:
- Teach general operating systems principles, using a real research operating system to illustrate them and by reading the research papers which propose some of the ideas that the particular OS builds on.
- Give a broader perspective on operating systems which do not look like Linux, Unix, or Windows.
- Provide exposure to the practical experience of working on OS code on real "metal", including debugging, hardware access, etc. This kind of experience is hard to gain merely from reading books or papers.
- Introduce a sense of the complexity of a real OS, rather than simplified teaching OSes often used in more basic courses.
Prerequisites: This course builds on the computer systems course (CS 439 or equivalent), the contents of which will be assumed knowledge. Proficiency in C programming is assumed.
Project: The course is structured around a significant project which builds up, over the course of the semester, a fairly complete operating system for the ARM-based Pandaboard hardware. The OS is based on the Barrelfish open-source multikernel originally developed at ETH Zurich in collaboration with Microsoft Research.
Lectures: Where practical, lectures will align with project-related material (to provide more background, knowledge, and time in completing the practical work), and also the prior research ideas that have informed the design of the aspects of Barrelfish relevant to the project milestones. They will also provide comparisons between Barrelfish and other systems such as Unix, Windows, and microkernels like L4.
Discussion: Instead of email, we will use Piazza for class and project discussion and Q&A. Please subscribe to Piazza as soon as possible if you're attending this lecture. Click here to go to the enrollment page.
Readings: There is no textbook for this course, as no published book covers the material in sufficient depth. Instead, reading for the course will consist of research papers and system documentation; this will be posted on the Piazza site in due course. Lecture notes for the course are also available and will be posted on Piazza.
Grading: Grading will be based solely on the project. Throughout the class, students will be working in groups of 3-4 on the project. The project is sub-divided into milestones that are assigned and graded in weekly intervals (some milestones are multi-week). Each milestone will be individually graded and the final grade is a composition of these grades.
Independent Inquiry: This course carries the Independent Inquiry flag. Independent Inquiry courses are designed to engage you in the process of inquiry over the course of a semester, providing you with the opportunity for independent investigation of a question, problem, or project related to your major. You should therefore expect a substantial portion of your grade to come from the independent investigation and presentation of your own work.
Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259, http://www.utexas.edu/diversity/ddce/ssd/.