Microsoft OS Research Is Really Heating Up
Microsoft Research has been firing on all cylinders of late with their various OS research projects. First, there was Singularity, a research OS that can be summed up as “what if Erlang was written in .NET and used as the basis for an operating system?”. That was promising and is rumored to be influencing an upcoming OS project called “Midori”.
But now, Microsoft has another coup, in my opinion even better than Singularity. Barrelfish is an intriguing new OS coming out of Microsoft Research and ETH Zurich that, in my opinion, is a much more promising direction than Singularity. Barrelfish is based on what they are calling a “multikernel”, which is similar to an exokernel except that a copy of the kernel runs on every core and peripheral of the system independently. All intercomponent communication is done via message passing, a la L4, and shared data structures are kept consistent via distributed concurrency control and recovery algorithms, the kind found in distributed database systems (as opposed to the traditional mutex/interconnect locking and reliance on cache coherence protocols).
What’s really interesting about this approach is that it takes the reality of the manycore future and embraces it fully. By designing an operating system based on distributed systems principals, they are ensuring that hardware compatibility is properly factored to avoid forklift upgrades that are expensive and error-prone as new hardware comes on the scene. They also compelling show excellent performance compared to a shared-memory kernel when the number of cores increases, even on hardware we have access to today.
I think, for me, the best part about Barrelfish is that its open source! Released under a BSD license, you can download all of the source today and investigate this fascinating new code from a floor seat perspective. It even (sort of) requires Linux to get it to build! While there is not yet available for general participation, I really hope they do allow that shortly and leverage the worldwide developer community’s skillset and willingness to contribute to something that could potentially be very influential in the coming decades.
You can go check out the numerous papers describing various aspects of Barrelfish and download the latest source code from http://barrelfish.org/. Do yourself a favor and read the summary paper first to get a feel for why this is a really exciting direction in OS design.