Advanced Operating Systems


  • No lecture on Thurdsday, 15th December
  • Final Project demonstrations: Friday 16th December in CAB H52 (!).
    • Demo your complete system as a group to the class
    • 15 minutes max!
    • Please be there on time
    • Beamer available
  • Project reports (milestone 8): Due Friday 23rd December.
    • One report per group
    • Expected content: Core system design, experiences, learnings, experiments, performance measurements, etc.
    • One chapter per individual project, showing how it fits in.
  • We've published the final project descriptions in the handout repository.
  • Milestone 3: Fixes based on reports from students
    • Do not use real threads in any domain to run main() function
    • Milestone description is now clearer on how connection setup can be done
  • Schedule for lectures and milestones now available
  • We have pushed an update to the milestone1 description and code. See the gitlab repository for the updated versions.
  • Submission system online at


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.


Week Lecture Project Handout
 1  Introduction


 2  Capabilities  Physical Memory Management
 3  Processes  Process Creation
 4  Microkernels  -
 5  Fast IPC  Message Passing
 6  Self-Paging  Self-Paging
 7  Multicore  Booting and using the second core
 8  URPC  Message Passing between cores
 9  File Systems  -
 10 Guest lecture: ARM  Individual Projects: See milestone7_*.pdf in handout repository for details. Members of the same group have to pick different projects.
 11  -  -
 12  Research outlook  -


 -  Project Reports



Registered students can access lecture slides and handouts on the gitlab service of the department: Each week's materials will be in a branch named weekN, where N is the week number from 1 to 14.

Questions about the course or the project work can be directed to

The submission form can be found at (reachable only within the ETH network). Login using your nethz credentials. The SSL certificate for the site is self-signed and has the following SHA-1 fingerprint



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): Mondays 14:00 to 15:00, CAB E77.1 / CAB F69
Project marking: Fridays 10:00 to 12:00, CAB H 57




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