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:
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 |
Familiarization |
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 | - |
13 |
- | Project Reports |
14 |
Registered students can access lecture slides and handouts on the gitlab service of the department: https://gitlab.inf.ethz.ch/OU-SYSTEMS/aos. 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 aos-support@lists.inf.ethz.ch.
The submission form can be found at https://aos.systems.ethz.ch (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
08:A6:8C:1C:65:61:70:17:8F:96:A9:C0:62:FB:E4:F8:F6:A9:3F:1F
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.
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.