How to Build an OS With Erlang: A Whistle-Stop Tour of HydrOS

Sam Williams
PhD student at the University of Kent

In this talk we will discuss the design, construction, and operation of a multikernel Erlang based operating system, HydrOS. We will delve into the depths of HydrOS, considering everything from the process of converting the BEAM into an OS kernel, concurrent driver design and interrupt handling, to parallel GUI application construction. While taking a tour through HydrOS, we will focus on the experience of building an OS in Erlang: what are the benefits, pitfalls, and intricacies?

While working our way through the internals of HydrOS, we will also discuss how multikernel OS architecture designs can be used to increase fault resistance to extreme levels -- allowing HydrOS systems to recover from OS node failure (equivalent to a 'Blue Screen of Death', or 'Kernel Panic') as well as various forms of hardware failure. The presentation will include various demonstrations of these fault tolerance principles in practice, as well as a tour of a running HydrOS machine.

Talk objectives:

  • To describe the challenges and benefits associated with OS construction in Erlang. We will also consider methods of increasing OS reliability with Erlang and Erlang-like fault tolerance structures.

Target audience:

  • Those interested in surprising and unusual uses for Erlang!
Slides
Video

Sam is a PhD student building a scalable and fault tolerant operating system using Erlang. This builds on his undergraduate dissertation project, in which he created a 'BEAM on bare-metal' OS targeting the Xen hypervisor. This project differed from ErlangOnXen in that it was a direct port of the BEAM, rather than using the Ling VM. Aside from Sam's OS work, he has been building web applications with Erlang, YAWS, and a web framework for around 6 years. When Sam is not programming he enjoys walking and climbing!


GitHub: samcamwilliams

Back to conference page