Last week heard of BarrelFish, a “multikernel” system which treats a multicore system as a network of independent cores, using ideas from distributed systems. Now, we have another research, and it’s called Helios.
As per Microsoft Research, Helios is complementary to Barrelfish. Helios is based on Singularity, though introduces support for satellite kernels, remote message passing, and affinity. The research paper written by the team behind Helios describes the operating system as:
Helios is an operating system designed to simplify the task of writing, deploying, and tuning applications for heterogeneous platforms. Helios introduces satellite kernels, which export a single, uniform set of OS abstractions across CPUs of disparate architectures and performance characteristics. Access to I/O services such as file systems are made transparent via remote message passing, which extends a standard microkernel message-passing abstraction to a satellite kernel infrastructure. Helios retargets applications to available ISAs by compiling from an intermediate language.
How Helios and Barrelfish complement each other
Barrelfish focuses on gaining a fine-grained understanding of application requirements when running applications, while the focus of Helios is to export a single-kernel image across heterogenous coprocessors to make it easy for applications to take advantage of new hardware platforms.
The Satellite Kernels interaction, process:
Satellite kernels are microkernels. Each satellite kernel is composed of a scheduler, a memory manager, a namespace manager, and code to coordinate communication between other kernels. All other traditional operating system drivers and services (e.g., a file system) execute as individual processes. The first satellite kernel to boot, called the coordinator kernel, discovers programmable devices and launches additional satellite kernels. Helios provides transparent access to services executing on satellite kernels by extending a traditional message-passing interface to include remotemessage passing. When applications or services communicate with each other on the same satellite kernel a fast, zero-copy, messagepassing interface is used. However, if communication occurs between two different satellite kernels, then remote message passing automatically marshals messages between the kernels to facilitate communication. Since applications are written for a message passing interface, no changes are required when an application is run on a programmable device.
Well, individually, they mean very little to the industry. However, Microsoft is looking at a future where computers will have lots of different processing cores, who may not all share the same instruction set – like a Fusion of Intel and AMD multicores and even beyond with the GPU who can do all the complex floating point mathematics much faster than CPU.
Apple had this built ground up in Leopards especially in Snow Leopard, GPGPU is already fully exploited. Is Microsoft looking toward future or realized this fact late?
Microsoft is right now researching new leaps, trying to look not just at Windows in 2013, but the operating system in general in 2020.