Barrelfish is a research operating system being developed by researchers at ETH Zurich in Switzerland in collaboration with Microsoft Research. Barrelfish is designed for the computers of tomorrow, following the current trends of an increasing number of cores.
Current generation operating systems have been adapted to take advantage of the increasing core count, and are now more multi-tasking enabled and aware, but as the number of cores steadily goes on increasing, a time will come when simply adapting current OSs will no longer be feasible.
There is still time, as a MIT researchers have shown Linux to be feasible even with as many as 48 cores, however when the cores go significantly beyond that, new kinds of operating systems will be needed. And Barrelfish is one.
Barrelfish is designed for not only an increasing number of cores, but also the diversity in computing platforms that is available now. Software such as Firefox, Opera, games like Angry Birds etc are available on both PCs and tablet / mobile devices. While most personal computers have x86-compatible hardware (Intel and AMD processors), most mobile platforms have ARM processors. Even on the same hardware, whether it be a desktop or a mobile, the architecture of the GPU differs greatly from that of the CPU. Our computing environments are already becoming more heterogeneous, and applications are being written with components that run on the CPU, and other components that run on the GPU.
Barrelfish is a “multikernel” OS, a completely new model in which instead of running a single kernel which runs on all cores, each core runs a separate instance of the kernel, whether it is an ARM processor, an x86 processor, a co-processor or even a GPU. Each of these kernels is a microkernel, meaning that it has only the bare minimum code needed to run on a core. The different kernels can pass messages to each other, and generally do not even need to know what architecture the kernels are running on.
Future computers could then have multiple different cores, each optimized to handle a particular kind of data, and the multikernel model would sort the rest out.
Currently Barrelfish is just a research OS intended to explore a new paradigm of operating system architectures, and had little practical application. The Barrelfish website itself does run on Barrelfish though.
Barrelfish has been released under the MIT Open Source licence, and is now available in a mercurial repository.