Advanced Operating Systems - Fall 2012


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.


Lecture slides


Project details




  • 15 Dec: Milestone-9 is published, and it will be due on 21th December
  • 12 Dec: Slides and reading material is uploaded for this week's lsecture
  • 8 Dec: Milestone-8 is published, and it will be due on 14th December
  • 5 Dec: Slides and reading material is uploaded for this week's lsecture
  • 28 Nov: There will be no lecture on 29th November.
  • 22 Nov: Milestone-7 is published, and it will be due on 7th December
  • 21 Nov: Slides for this week's Multicore Systems lecture are uploaded.
  • 5 Nov: We are giving you more time to work on Milestone-5 by cancelling the lecture for this week. Please note that that there will be an excercise session for the demonstration of milestone-5 solution on Friday at usual time/place.
  • 30 Oct: Slides for this week's Microkernels and IPC lecture are uploaded.
  • 30 Oct: Milestone-5 is published, and it will be due on 9th November
  • 29 Oct: Reading list for week-7 is uploaded.
  • Pandaboard Lab page updated with more instructions on how to replicate the setup locally.


The examination will be oral. It will last 15 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 60% project to 40% examination.


Course Hours

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




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