Sunday, July 29, 2007

Singularity v1.0

Looks like Singularity has reached the first release stage.
This is a project that Microsoft has been working on for a while, since 2003.
It’s basically a research OS prototype answering the question, "what if you built an OS with dependability and trustworthiness at its core from the ground up".

Here are some of the items the Singularity team is working on.

For example, Singularity uses type-safe languages and an abstract instruction set to enable what we call Software Isolated Processes (SIPs). SIPs provide the strong isolation guarantees of OS processes (isolated object space, separate GCs, separate runtimes) without the overhead of hardware-enforced protection domains. In the current Singularity prototype SIPs are extremely cheap; they run in ring 0 in the kernel’s address space.

I think the best thing about this new OS is the SIPs (Software Isolated Process).
Every program, device and system extension gets its own SIP.

Imagine this scenario...
You go out and buy some cheap ass web cam, printer or any external device and plug it into your machine. You install the drivers and restart your pc.....BAM!!! Blue Screen of Death

Your new cheap ass device just killed your OS because drivers are first class citizens and have hooks into the kernel. This scenario could not happen in a Singularity based system. In a Singularity based system the device would have its own memory space. There is no memory sharing or modifying of its own code. Every SIP gets its own data layouts, run-time system, and garbage collector. If this happened, in a Singularity based system, it would just die in its own little memory space and the rest of the OS would not be affected. Once the system finish booting, the OS can just tell you which devices have not booted and would you like to uninstall them.

I guess the other coolest part about this OS is the new language built for it called Sing#, which is an extension of C#. This language has first-class support for OS communication primitives as well as strong support for systems programming and code factoring.

Too get more info on Singularity check out their page... Singularity

Also here’s a really good white paper that goes into the specs of the whole system here.

No comments: