Advanced Operating Systems

Overview

This course is intended to give students a thorough understanding of design and implementation issues for modern multicore 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 course is structured around a significant project which builds up, over the course of the semester, a fairly complete, full-featured multicore operating system for the ARM-based PandaBoard hardware. The OS is based on the Barrelfish open-source multikernel developed at ETHZ in collaboration with Microsoft Research.

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.  

This course builds on the ETHZ undergraduate courses in Computer Architecture and Systems Programming (252-0061-00) and Operating Systems and Networking (252-0062-00), the contents of which will be assumed knowledge. Proficiency in C programming is assumed.

Lectures will focus on 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.

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 this web site in due course.


Course Materials - Schedule


News

  • 03 Oct: The deadline for milestone-2 (self-paging) is extended from 10th October to 17th October, giving an extra week.
  • 21 Oct: The deadline for milestone-3 (message-passing) is 31st October, giving two weeks for the milestone.
  • 16 Dec: The deadline for the submission of milestone-8 (Documentation) is extended till 24th December.
  • Examination details: 29 Jan 2015, 9:00-10:30, G.11

 


Resources

OMAP4460 Technical Reference Manual [pdf]
Pandaboard ES System Reference Manual [pdf]
ARMv7 A-R Technical Reference Manual [pdf]
AOS Styleguide [pdf]
SD Simplified Specification Part 1 (Physical Layer) [pdf]
FAT32 Specification Download [external link]
Cortex-A9 MPCore TRM [pdf]
 

Examination

The examination will be a written exam for 90 minutes and consist of questions in English; all material covered in lectures and in the project is considered examinable. The final assessment will be a combination of project and examination grades with a weighting of 65% project to 35% examination.

 

Course Hours

Lecture: Thursdays 10:00 to 12:00, CAB G 59
Consultations (optional): Email Pravin to arrange
Project marking: Fridays 10:00 to 12:00, CAB H 57

Staff

 


Acknowledgments

We thank Texas Instruments and ARM for helping us to realize this course.