|Barrelfish - Microsoft's other OS|
|Written by Mike James|
|Tuesday, 12 July 2011|
With multicore becoming the norm we need operating systems that can take advantage of them without wasting time trying to keep the show on the road with centralized management. Barrelfish is Microsoft's experiment in viewing the hardware as a collection of networked processors.
Since it became difficult for hardware manufacturers to increase clock speeds much above 3Ghz we have had to change our approach from faster serial processing to more parallel processing. The big problem is that while operating systems such as Linux, Unix and Windows can make use of multiple processors they were never designed to do so efficiently or in a modern way.
Researchers at Microsoft Research working with ETH Zurich think that Barrelfish, a new OS built from scratch, might be a way forward. It was started as a project back in 2007 and they are very clear that this is not a Windows replacement - not now, not ever. The whole point of Barrelfish is to find out how to build a better multiprocessor system. One of the key properties that the new OS needs is scalability. The number of cores available on today's machines varies but over time it is only going to increase and the operating system has to be able to keep up.
The standard way that current OSes cope with the symmetric multiprocessor architecture is to use a shared memory kernel. The problem is that the shared memory has to be protected by locks and this slows things down a lot and the slow down increase according to the number of processors available. The new idea, although it has been tried before, is to think of the multicore architecture as a network of independent processors. This even works if you consider a multiprocessor machine with different types of CPU and even includes multiple GPUs.
The multikernel model works by allowing individual kernels - or OS Nodes to communicate by message passing rather than using shared memory. Instead of keeping a single OS state in memory the idea is that it is replicated and kept up-to-date by message passing. This removes the problem of locks slowing things down but adds problems to do with maintaining the state across multiple kernels.
Barrelfish is an implementation of these principles and it currently works on x86-64 and ARM processors. It is argued that the message passing and networking approach fits into the approach used by current hardware and in time the match will improve - especially if hardware manufacturers start to build in support for message passing OSs.
Although it is supposed to be just a research tool it is interesting to read the footer from the Barrelfish website:
This web page was brought to you by a server running Barrelfish.
The code for the entire system can be downloaded and is open source. You can also read about the fine details of the structure of the system in a recent paper:
|Last Updated ( Tuesday, 12 July 2011 )|