The Barrelfish Operating System
Barrelfish is a new research operating system being built from
scratch and released by
ETH Zurich
in Switzerland, with assistance from
Microsoft Research.
We are exploring how to structure an OS for future multi- and
many-core systems. We are motivated by two closely related trends in
hardware design: first, the rapidly growing number of cores, which
leads to a scalability challenge, and second, the increasing diversity
in computer hardware, requiring the OS to manage and exploit
heterogeneous hardware resources.
For more information, please read our research papers below and see
the FAQ.
[Download]
[Documentation]
[People]
[Publications]
News: 7th June 2013
New mercurial respository URL
- New release: A new release of Barrelfish is
available. See Section Download for
information on how to obtain the code. The Mercurial tag for the
release
is: release2013-06-07. We
posted a detailed list of changes on
our mailing
list.
- Older releases and their changes are:
- Technical notes: We've put a snapshot of the
technical notes below, so you don't
have to build the source to obtain them. They are not guaranteed to
be up to date, though, so check the source code for the latest
versions.
- We're hiring! ETH is currently hiring postdocs
and PhD students to work on Barrelfish. For more information,
see here.
Download
Barrelfish is released under the
MIT
Open Source license.
The latest release of Barrelfish can now be obtained by anonymous
Mercurial access from
http://hg.barrelfish.org/barrelfish/.
Additionally, the code is available as tar.gz file from
http://hg.barrelfish.org/barrelfish/archive/tip.tar.gz.
Documentation
The Barrelfish source contains a number of technical notes,
which are rough-and-ready (and incomplete) documentation, tutorials,
reference manuals, etc. for the system. These should be enough to get
you started. Here is a recent snapshot - always check the source for
the most recent versions:
- Overview
- Glossary
- Mackerel
- Hake
- Virtual Memory
- The Single Chip Cloud Computer
- Routing
- The Beehive Processor
- Tracing Framework
- Notifications
- Specification
- Inter-Dispatcher Communication
- Services
- Capability Management
- Bulk Transfer
- Disk Driver Architecture
- Serial ports in Barrelfish
We have setup a
mailing
list where you can ask for help or help others working with
Barrelfish. You will need to subscribe before posting to the list.
For more research-oriented descriptions of Barrelfish, see our publications.
Finally, there is also a public
Wiki server for Barrelfish
information - please apply for an account if you want to contribute.
People

Barrelfish hackers and friends, Zurich, August 2009
From the ETH Zurich Systems Group:
From University of Washington:
From Microsoft Research,
Redmond:
From Microsoft Research,
Silicon Valley:
From Microsoft Research,
Cambridge:
Past interns, students, alumni, and other contributors:
- Pierre-Evariste Dagand
- Raphael Fuchs
- David Gerhard
- Ankush Gupta
- Alexander Grest
- Jonas Hauenstein
- Samuel Hitz
- Lukas Humbel
- Antoine Kaufmann
- Reto Lindegger
- Daniela Meier
- Dominik Menzi
- Mark Nevill
- Amar Phanishayee
- Kaveh Razavi
- Jan Rellermeyer
- Raffaele Sandrini
- Bram Scheidegger
- Dario Simone
- Akhilesh Singhania
- Manuel Stocker
- David Stolz
- Animesh Trivedi
- Gerd Zellweger
Friends and collaborators:
Publications
- Pravin Shinde, Antoine Kaufmann, Timothy Roscoe, Stefan Kaestle.
We need to talk about NICs.
In Proceedings of the 14th Workshop on Hot Topics in Operating
Systems (HotOS-XIV),
Santa Ana Pueblo, NM, USA, May 2013.
[ .pdf ]
- Tim Harris, Martín Abadi, Rebecca Isaacs, Ross
McIlroy.
AC: Composable Asynchronous IO for Native Languages.
In Proceedings of the 2011 Conference on Object-Oriented
Programming Systems, Languages and Applications (OOPSLA 2011),
Portland, OR, USA, October 2011.
[ .pdf ]
- Simon Peter, Adrian Schüpbach, Dominik Menzi, Timothy
Roscoe.
Early experience with the Barrelfish OS and the Single-Chip
Cloud Computer.
In Proceedings of the 3rd Intel Multicore
Applications Research Community Symposium (MARC),
Ettlingen, Germany, July 2011.
[ .pdf ]
- Ihor Kuz, Zachary Anderson, Pravin Shinde, Timothy
Roscoe.
Multicore OS benchmarks: we can do better.
In Proceedings of the 13th Workshop on Hot Topics in Operating
Systems (HotOS-XIII),
Napa, CA, USA, May 2011.
[ .pdf ]
- Jeff Mogul, Andrew Baumann, Timothy Roscoe, Livio Soares.
Mind the Gap: Reconnecting Architecture and OS Research.
In Proceedings of the 13th Workshop on Hot Topics in Operating
Systems (HotOS-XIII),
Napa, CA, USA, May 2011.
[ .pdf ]
- Adrian Schüpbach, Andrew Baumann, Timothy Roscoe, Simon Peter.
A declarative language approach to device configuration.
In Proceedings of the 16th International Conference on
Architectural Support for Programming Languages and Operating
Systems,
Newport Beach, CA, USA, March 2011.
[ .pdf ]
- Simon Peter, Adrian Schüpbach, Paul Barham, Andrew Baumann,
Rebecca Isaacs, Tim Harris, and Timothy Roscoe.
Design principles for end-to-end multicore schedulers.
In 2nd Workshop on Hot Topics in Parallelism,
Berkeley, CA, USA, June 2010.
[ .pdf ]
- Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris,
Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach, and
Akhilesh Singhania.
The Multikernel: A new OS architecture for scalable multicore systems.
In Proceedings of the 22nd ACM Symposium on OS Principles,
Big Sky, MT, USA, October 2009.
[ .pdf ]
- Pierre-Evariste Dagand, Andrew Baumann, and Timothy Roscoe.
Filet-o-Fish: practical and dependable domain-specific languages for OS development.
In 5th Workshop on Programming Languages and Operating Systems (PLOS),
Big Sky, MT, USA, October 2009.
[ .pdf ]
- Andrew Baumann, Simon Peter, Adrian Schüpbach, Akhilesh Singhania,
Timothy Roscoe, Paul Barham, and Rebecca Isaacs.
Your computer is already a distributed system. Why isn't your OS?
In Proceedings of the 12th Workshop on Hot Topics in Operating Systems,
Monte Verità, Switzerland, May 2009.
[ .pdf ]
- Adrian Schüpbach, Simon Peter, Andrew Baumann, Timothy Roscoe, Paul Barham,
Tim Harris, and Rebecca Isaacs.
Embracing diversity in the Barrelfish manycore operating
system.
In Proceedings of the Workshop on Managed Many-Core Systems,
Boston, MA, USA, June 2008.
[ .pdf ]
Theses, reports, etc.
-
David Stolz, Alexander Grest.
Trace Collection, Analysis, and Visualization for Barrelfish.
Distributed Systems Lab, ETH Zurich, February 2013.
[ .pdf ]
-
Robert Meier.
Automated Performance Discovery For a Multicore OS.
Bachelor's thesis, ETH Zurich, December 2012.
[ .pdf ]
-
Simon Peter.
Resource Management in a Multicore Operating System.
PhD thesis, ETH Zurich, October 2012.
[ .pdf ]
-
Reto Lindegger, Lukas Humbel, Daniela Meier.
Using virtualization for PCI device drivers.
Distributed Systems Lab, ETH Zurich, September 2012.
[ .pdf ]
-
Raphael Fuchs.
A session control interface for a Multikernel.
Bachelor's thesis, ETH Zurich, August 2012.
[ .pdf ]
-
Samuel Hitz.
Multicore ARMv7-a support for Barrelfish.
Bachelor's thesis, ETH Zurich, August 2012.
[ .pdf ]
-
Simon Gerber.
Virtual Memory in a Multikernel.
Master's thesis, ETH Zurich, May 2012.
[ .pdf ]
-
Mark Nevill.
An Evaluation of Capabilities for a Multikernel.
Master's thesis, ETH Zurich, May 2012.
[ .pdf ]
-
Gerd Zellweger.
Unifying Synchronization and Events in a Multicore Operating System.
Master's thesis, ETH Zurich, March 2012.
[ .pdf ]
-
Antoine Kaufmann.
Low-latency OS protocol stack analysis.
Bachelor's thesis, ETH Zurich, January 2012.
[ .pdf ]
-
Alexander Grest.
A Routing and Forwarding Subsystem for a Multicore Operating System.
Bachelor's thesis, ETH Zurich, August 2011.
[ .pdf ]
-
Manuel Stocker, Mark Nevill, Simon Gerber.
A Messaging Interface to Disks.
Distributed Systems Lab, ETH Zurich, July 2011.
[ .pdf ]
-
Jonas Hauenstein, David Gerhard, Gerd Zellweger.
Ethernet Message Passing for Barrelfish.
Distributed Systems Lab, ETH Zurich, July 2011.
[ .pdf ]
-
Dominik Menzi.
Support for heterogeneous cores for Barrelfish.
Master's thesis, ETH Zurich, July 2011.
[ .pdf ]
-
Kaveh Razavi.
Performance isolation on multicore hardware.
Master's thesis, ETH Zurich, May 2011.
[ .pdf ]
-
Bram Scheidegger.
Barrelfish on Netronome.
Bachelor's thesis, ETH Zurich, February 2011.
[ .pdf ]
-
Kaveh Razavi.
Barrelfish Networking Architecture.
Distributed Systems Lab, ETH Zurich, 2010.
[ .pdf ]
-
Raffaele Sandrini.
VMkit: A lightweight hypervisor library for Barrelfish.
Master's thesis, ETH Zurich, September 2009.
[ .pdf ]
-
Dario Simone.
Power management in a manycore operating system.
Master's thesis, ETH Zurich, August 2009.
[ .pdf ]
-
Animesh Trivedi
Hotplug in a multikernel operating system.
Master's thesis, ETH Zurich, August 2009.
[ .pdf ]
-
Pierre-Evariste Dagand.
Language Support for Reliable Operating Systems.
Master's thesis, ENS Cachan-Bretagne – University of Rennes, France, June 2009.