Microsoft's Non-Windows OS : Singularity

Microsoft has made the announcement at its Microsoft Research TechFest 2008 event in Redmond, that the Singularity Research Development Kit (RDK) 1.1 is now available for academic non-commercial use. You can download it from Microsoft's open source code project hosting website.

Singularity is a Microsoft Research project started in 2003 to build a highly-dependable microkernal operating system in which the kernel, device drivers, and applications are all written in managed code. More than 90% of the OS kernel is written in Sing#, an extension of the C# high-level programming language.

The key developers of Singularity, Galen Hunt and Jim Larus, have said that all current operating systems such as Windows, Linux and MacOS can be traced back to an operating system called Multics, which has its origins in the 1960s. In effect, current operating systems are still based, in part, on thoughts and criteria from 40 years ago.

Link: WinVistaClub.

Report a problem with article
Previous Story

Intel to Deliver Six-core Xeon Processor This Year

Next Story

AMD lets Puma release date out of the bag

10 Comments

Commenting is disabled on this article.

(xan K said @ #5)
what's "managed code" and its benefits?

Managed code is code that runs in its own little space.. it has its own heap... its own dedicated memory area and runs usually with more security then low level code... in terms of .NET managed code is when you have a language like VB.NET or C# which are built on the .NET framework libraries then compiled into MSIL (microsoft intermediate language... its kinda like assembly when you look at it) then when it is ran it goes through a JIT compiler ot Just in time compiler to convert that to native calls for the system... usually it is slower... but that is because of all the layers ontop of layers windows has... to get to managed code you have to go through all this fun...

Kernel > USER32 / GDI32 > WIN32 > MFC / ALT > COM Wrappers > Managed Runtimes > .NET Framework W32/COM wrapper components (common controls mainly) then you get to your app! if they rewrote the OS from scratch you can get rid of a lot of that so it looks like

Kernel > Managed Code

but over windows history instead of revising stuff, they just added layer ontop of layer

It'll not happen for Windows 7, hell it'd be crazy to think it would even happen for Windows 8, but some time in the far future, you never know.
Still, the implications of running the entire OS in managed code could mean it never happens, unless processors put a chip on them that deals with the management of code, that could make it 99.9% as fast as traditional C++, but with all of the benefits of managed code.

Actually... I would not like this to be called Windows. It should be called something else because it is entirely a new OS.

Webwowsers. An OS and drivers written in MANAGED CODE? But I guess that such things make sense as computars become faster. Will this the ready in time for Windows 8? I think not, but it would be crazy-stable, wouldn't it?

Actually, being managed code has no/little effect on performance, rather it is the way Java/.NET is implemented that determines it's performance on current operating systems (I'm assuming you think managed code is inherently slow based on your Java/.NET experiences).

In fact, in Singularity, because all code can run in a single context (i.e. ring 0) alleviating all context switching, Singularity should perform any tasks that today rely heavily on context siginificantly faster.

(kl33per said @ #2.1)
Actually, being managed code has no/little effect on performance, rather it is the way Java/.NET is implemented that determines it's performance on current operating systems (I'm assuming you think managed code is inherently slow based on your Java/.NET experiences).

In fact, in Singularity, because all code can run in a single context (i.e. ring 0) alleviating all context switching, Singularity should perform any tasks that today rely heavily on context siginificantly faster.

Actually managed code can have major performance differences... in the case of .NET framework, if you do not precompile it and let it do on the fly compiling of code it can have hiccups as you use it while it compiles the parts it needs on the fly... lots of places pre-compile code to prevent this though... and there where also benchmarks out there that showed java and .NET having slower integer and floating point performance then native assembly calls (who wouldnt of though that huh? assembly faster then 4 tiers down in a os..) a lot of this has been optimized in .NET 2.0 and 2.0 SP1 but they still are not as fast as C++ with a highly optimized template library setup for math and other functions that are built for speed

There are a couple things I will note:

  • It is ironic that "Building and Running Singularity RDK 1.1.pdf" isn't called "Building and Running Singularity RDK 1.1.xps". :P
  • 16-bit software apparently lives on in "Building and Running Singularity RDK 1.1.pdf". On the 2nd page where it says "baseBuild", it details that there is a 16-bit C++ compiler for a 16-bit bootstrap loader and a 32-bit C++ compiler for a 32-bit bootstrap loader.
  • Install it in Virtual PC.

Edit: "baseBuild" should contain a reverse solidus (backslash) between the words "base" and "build", but for some reason it is removed...

(rpgfan said @ #1)
It is ironic that "Building and Running Singularity RDK 1.1.pdf" isn't called "Building and Running Singularity RDK 1.1.xps".

In your estimation, what percentage of potential users of this RDK likely have the ability to open .pdf files as opposed to the percentage of users that can open .xps files?