Thursday, October 1, 2009

Another Tasty Recipe from Microsoft Research OS Labs

It requires no stretch of the imagination to say that Microsoft is interested in operating systems; Windows being their claim to fame.


Now Microsoft is showing signs that they are indeed looking into the future of operating systems, and maybe, Windows might not be it.


There have long been rumours of Microsoft's next operating system, Midori based on their Singularity operating system research project.

Singularity is an experimental operating system, in which all code, even device drivers, and the kernel itself are written in managed code, making the operating system much safer. The operating system also has a large focus on concurrency.

Barrelfish, a recent release in collaboration between ETH Zurich and Microsoft Research, calls itself a multi-kernel operating system. Its focus is on leveraging the increasing number of cores in desktop processors. The mainstream operating systems today, Windows, and Linux, have both been designed for single-core computers, with multi-processing support added on later.

The Barrelfish project instead tries to redefine the entire operating system keeping in mind that multi-core is here is stay. Today we have dual-core, quad-core, and even hexa-core, but given a decade, we may be looking at hecto-, kilo-, or even mega-core computers! These will require a rethinking of the very organization of the operating system.

Barrlefish does just that. It treats the multi-core processor environment as a collection of networked processor cores, and applies the concepts used with distributed computing to manage the execution of the computer's processes. This has the effect of making the system much more scalable. An interesting part of this approach is also that the processor cores need not be homogeneous! The multiple kernels could all be running on processors of different architectures, once kernel might be executing on an ARM, while another on a x86, and a third on a GPU!

Heleos, another research OS in MS labs and their latest revelation, takes the concept of heterogeneous multiprocessing further, and introduces "satellite kernels". The research paper explains the need for operating system kernels which are gnostic of the platform that are running on, to the extent that they can take advantage of it.

It explains that current operating systems are designed with a homogeneous running environments in mind. For this reason, an operating system is written for either an IA64, or an x86, or a PPC, or an ARM platform, however it cannot leverage all of them. Our computers however are no longer homogeneous. We have CPUs and GPUs of different architectures, each with multiple cores. The GPU is highly optimized for a vector processing, and has an architecture which vastly differs from that of the CPU, with a completely different instruction set and performance characteristics.

The Helios project introduces satellite kernels, which essentially presents the developers with a "single,uniform set of OS abstractions across CPUs of disparate architectures and performance characteristics." This satellite kernel is a micro-kernel, and runs all other services and drivers in individual processes.

With Singularity and Barrelfish both available as open source releases, it seems Microsoft might just be headed for a more open future. Although it is unlikely that these operating systems are anything you will see under the Microsoft brand any time soon. Currently, it seems Microsoft is testing the waters for its next generation operating system, whatever that may be. Instead these operating systems seem to be the a look into the structure of Windows many revisions away, if it'll even be called that by then.

No comments:

Post a Comment