Microsoft Singularity


Singularity, the term originally coined by Vernor Vinge, and made recently famous by Ray Kurzweil is spreading all over the world. Redmond is not behind. Microsoft Research has been working on a Singularity project for two years now. Somewhere in its background, singularity means breakthrough, and this - I suppose - was the reason why Microsoft chose the name for the new prototype operating system. The goal is to (finally) have a software you can depend on. Microsoft defines system as dependable when it behaves as expected by its creators, owners and users, noting that many systems do not fit this definition [:)].
Singularity started with a question: what would a software platform look like, if it was designed from scratch, with the primary goal of dependability, instead of the more common goal of performance? This statement however casts a shadow of doubt, whether an architecture like that will ever be accepted by consumers. Of course, we hate software bugs and instabilities. But we are still paying a lot of attention to price, and we are gadget loving geeks, and we demand backward compatibility. And Singularity will be neither cheap nor full of gadgets. And it will completely break backward compatibility with older systems and applications. Are we ready for such a step? Most of us are not. We prefer BMWs with a computer and 38 electric motors in its 8-way power seats over ascetic Subarus. And we absolutely have to run every old application on every new computer we bring home. But some of us, directly or indirectly hit by one of the history's worst software bugs, may be getting the message.
Singularity project is significant from yet another perspective. All its predecessors relied on specific hardware architectures below the OS. Namely addressing buses, assembly instruction sets, execution rings. Singularity takes different approach, with SIPs (Software-Isolated Processes) being the center of the gravity, TAL (Typed Assembly Language) allowing verification of code safety before it is executed and MIV (Memory Independence Invariant) that prohibits cross-objects space pointers. All this is crowned by strongly typed, higher-order communication channels with system being able to verify both the protocol and values being passed between processes. Elegant and mature software architecture as described above drastically simplifies the hardware requirements below. In the prototype implementation all SIPs run in ring 0 in the kernel's address space, having dramatic effect on performance. Calls from a process to the kernel are 10 times faster than on current implementations of Linux and Windows. Creating a new process takes 300,000 CPU cycles, while the same operation is about 1 million cycles in Linux and 5 million cycles in Windows.
I am very happy to see an initiative like that. Sooner or later we will have to switch to dependable software. Especially when, according to Singularity prophets like Vinge and Kurzweil, to achieve immortality, we transfer our souls from biological bodies to machines.

Comments