A set of open-source courses for students and software practitioners

Robert N. M. Watson and George V. Neville-Neil

We have observed a decline in the teaching of operating systems fundamentals in a period where it is becoming more important, in large part due to a lack of contemporary and re-usable material, and training for people to teach operating systems. Where such courses still exist they work with toys rather than real systems, avoid interesting micro-architectural elements required to achieve performance on contemporary systems, omit coverage of the features developers are most likely to engage with e.g., multi-threading, multi-core hardware, and networking. Finally, and perhaps most importantly, they fail to teach suitable experimental methodology to allow developers to evaluate whether their performance work is effective.

It is our belief that giving students the ability to observe, at run time, the inner workings of a complex system, such as the FreeBSD Operating System, provides them with a clearer understanding of how such systems ought to work in theory, how they actually work in practice, and how to design experiments to tell the difference between the two.

These courses are applicable to both University students and practitioners of software engineering.

The preferred text for the course is The Design and Implementation of the FreeBSD Operating System, 2nd Ed.

All of our materials are under an open-source license and are available in our github repo.

Current and Previous Courses


L41 at Cambridge University, 2015-2016

L41 at Cambridge University, 2014-2015


Part I.B Concurrent and Distributed Systems: Case study: FreeBSD kernel concurrency, 2015-2016.


A Look Inside FreeBSD with DTrace


20 December 2015

Robert Watson and George Neville-Neil talk with Will Backman about Teaching with Tracing and FreeBSD on BSDTalk.

BSDTalk Interview