[CSE]  Advanced Operating Systems 
 COMP9242 2006/S2 
CRICOS Provider
Number: 00098G

PRINTER Printer-Friendly Version
- Notices
- Course Intro
- Consultations
- Survey Results
- Lectures
- Selected Papers
- Project Spec
- Exam
2006 Patchlist
Project Resources
Slug Lab
L4 Debugging Guide
Developing on a Mac
Developing on Linux
SOS source browser

L4Ka::Pistachio FAQ
L4 reference manual
L4 user manual
IXP42X hardware manual 
NSLU2-Linux HomePage
Intel IXP400 Software

Related Info
Aurema OS Prize
OS Hall of Fame
- 1997
- Gernot Heiser (LiC)
- Kevin Elphinstone
- Guest Lecturers (TBA)
- Student Reps

Valid HTML 4.0!

Course Introduction



To provide students with a deep understanding of modern operating system technology, implementation techniques and research issues.



Provide in-depth coverage of modern operating system issues, such as:

  • microkernels and IPC,
  • user-level OS servers,
  • design and implementation of microkernel-based systems,
  • performance,
  • kernel design and implementation,
  • device drivers,
  • virtualisation and hypervisors,
  • scheduling for real-time,
  • symmetric multiprocessing and hardware multithreading,
  • effects and control of hardware caches,
  • alternative protection and security models,
  • alternative OS designs and resulting issues,
  • hot topics.


  • Exposing students to current operating systems research and modern OS technology.
  • Providing insight in the design principles of very fast kernels.
  • Providing experience in low-level systems programming in a realistic development environment.
  • Providing experience in reading and evaluating research papers.
  • Encouraging interest in further study and research in the area.


  • Working in an environment and on problems similar to a professional OS or embedded systems engineer in industry.
  • Designing, implementing and debugging a whole system almost from the hardware up.
  • Learning to cope with system complexity.
  • Understanding lowest-level OS code and its interaction with hardware.



  • Students are expected to be highly competent in programming in C. Students not familiar with C will be expected to learn it on their own (very quickly!)
  • Students are expected to be familiar with assembly language programming. The project will not require assembly programming, but for debugging and understanding of calling conventions this knowledge is required. Furthermore, the lectures will examine low-level kernel code, some of which is written in assembler.
  • Students are expected to be familiar with basic computer architecture concepts and the main characteristics of a modern RISC processor. The project will use an XScale AXP-based computer (ARM v5 ISA).

Course Prerequisites

  1. a distinction grade in COMP3231/COMP3891/COMP9201/COMP9283 (Extended) Operating Systems (pre-requisite)



A rough outline of the lectures is (subject to change):

Introduction and Overview
Introduction to the L4 Microkernel
L4 system calls and usage (to get you started on the project)

A close look at selected OS issues
  • Caching, and its implications for OS
  • Protection, capabilities
  • Page tables for wide address spaces
  • Comparison of OS designs (L4, Linux, Darwin, Windows)
  • Real-time issues
  • SMP/SMT issues: locking, cache coherence, scheduling
  • Encapsulated device drivers
  • File systems
  • Hot topics
Microkernels and User-level Servers
History and motivation for microkernel systems, Hydra, Mach, discussion, experiences; second-generation microkernel systems, L4, Exokernel, Spin; design and implementation of microkernel-based systems, including user-level page fault handling and device drivers
Microkernel Construction
A detailed look at the internals of a real microkernel (L4).
Other topics
Candidates are: Embedded systems projects in NICTA, Gelato@UNSW projects, UNSW Mungi project


Lab work forms a major component of the course. This will be carried out using a take-home hardware kit that can be used in any of the School's Linux labs, or on students own machines.

Labs commence in Week 1. Students will be provided with a Cisco/Linksys NSLU2 (“Slug”) which have an Intel XScale processor conforming to the ARM v5 instruction set. These nodes are set up to run NICTA L4-embedded, a microkernel derived from Karlsruhe's L4Ka::Pistachio and which had originally been ported to the ARM architecture by Carl van Schaik and Harvey Tuch at NICTA and UNSW. The Slugs are connected to Linux hosts running an L4 development environment. OS code is developed and compiled there and then downloaded to the Slug, which present a minimum environment ideally suited for low-level systems programming exercises. Documentation as well as sample code will be provided.

After some ``warm-up'' experiments students will work in groups of two on a project, which constructs various OS components, with the ultimate aim of producing a small (and very efficient) operating system. A series of milestones are defined to aid the implementation.

Milestones and the final project will be demonstrated to School staff and the code submitted for assessment. Complete system documentation will form the final deliverable.

Details will be published in due course. Milestones must be demonstrated at the scheduled demonstration time in the week in which they are due. Milestone deadlines missed by no more than one week will cause a loss of 25% of the mark for that particular milestone, if missed by more that one week the penalty is 50%, up to a maximum of two weeks. No submissions/demos will be accepted later than two weeks after the deadline. Furthermore, students will not be allowed to continue with the course unless they have given a satisfactory demonstration of the first two milestones (m0 and m1) within one week of the respective due date!

Alternative projects may be given to some students by special arrangements. The main criteria for this is that the project is at least as challenging as the standard project, and that I am convinced that the student(s) are up to it.


Plagiarism in any form will be dealt with consistent with School and University policies.

Final Exam

There will be a final exam, in the form of a 24h take-home. Students will be given one day to read and analyse two recent research papers relevant to the material covered in the course, and submit a critical report on it. See the previous years' exams for examples.

Supplementary assessments

Supplementary exams will only be awarded in well justified cases, in accordance with School policy, not as a second chance for poorly performing students. In particular, it is highly unlikely that a supplementary will be awarded to students who have actually submitted an exam. Make up your mind whether or not you are sick before submitting!

Supplementary exams will have the same format as the normal exam, and will be probably be on the day after the written supplementary exams held for other courses.


See the consultation schedule.


The project is the heart of this course, which is all about learning about OS design and implementation “hands on”. It will dominate the workload for the course, and will develop valuable and highly-sought-after systems skills in students. Consequently, the project is the dominating assessment component.

Project work counts for 65%, the exam for 35% of the final mark. A minimum mark of 14 (i.e., 40% of the maximum) is required in the exam to receive a passing grade. This is to ensure that no-one can pass the course on project work alone.



We conduct a detailled on-line survey at the end of each session, in order to identify any shortcomins with the course. This has in the past helped to maintain and improve the quality of the course.

In order to emphasise that we take student comments very seriously, we publish all surveys uncensored, with the possible exception of removing statements other people could find upsetting (the LiC isn't easily insulted ;-). In some cases they are accompanied by comments by the LiC.

Parallel Teaching


Credit Value

COMP9242 is weighted at 6 UoC.

Yellow Form

Expectations and responsibilities of students, OH&S and equity and diversity issues are covered in the School's Yellow Form which every student needs to sign.



There is no textbook for this course, as no published book covers the material in sufficient depth. Plenty of handouts will be provided.

Reference Books

  • A. Tannenbaum, A. Woodhull: Operating Systems: Design and Implementation, 2nd ed. 1997, Prentice Hall.
  • Curt Schimmel: UNIX Systems for Modern Architectures, 1994, Addison Wesley.
  • M. Beck, H. Böhme, M. Dziadzka, U. Kunitz, R. Magnus, and D. Verworner: Linux Kernel Internals, 1997, Addison Wesley.
  • Marshall K. McKusik, Keith Bostic, Michael J. Karels, John S. Quarterman: The Design and Implementation of the 4.4BSD Operating System, 1996, Addison Wesley.
  • Helen Custer: Inside Windows NT, 1993, Microsoft Press.
    2nd version authored by David A. Solomon, (1998), 3rd version authored by David A. Solomon and Mark Russinovich titled ``Inside Windows-2000'' (2000).
  • Helen Custer: Inside the Windows NT File System, 1994, Microsoft Press.
  • Scott Maxwell: Linux Core Kernel Commentary, 1999, CoriolisOpen Press.
  • John Lions: Commentary on UNIX 6th edition with source code, 1996, Peer-to-Peer Communications. (The famous Lions Book, identical to the 1977 UNSW TR.)
  • Selected research papers as referred to in class.
  • Source code.

Reference manuals for labs

The menu bar on the left provides links to all relevant documentation for hardware and software.

Other material

Lecture slides and other information can be found under the course's WWW home page at URL http://www.cse.unsw.edu.au/~cs9242/.


Lecturer-in-charge is Gernot Heiser. He and Kevin Elphinstone will deliver most of the lectures. Some lectures will be delivered by other local researchers, visitors or research students.

Charles Gray, Godfrey van der Linden and Tom Birch are highly experienced students who will be supporting the course, provide consultations and assess milestone demonstrations.

Last modified: 26 Jul 2006.