Want to see what a non-Windows-based operating system developed by Microsoft looks like?
If you are willing and able to sign a non-commercial, academic Shared Source license, look no further. Microsoft on March 4 made the few-hundred-thousand lines of source code for Singularity Version 1 available for download from its CodePlex site. Microsoft made the announcement at its Microsoft Research TechFest 2008 event in Redmond, Wash.
Singularity is an operating system and set of related tools and libraries that is developed completely in managed code. Singularity is not based on Windows; it was written from scratch as a proof-of-concept.
"We decided not to build operating systems that are built on technologies that are 30 years old," said Principal Researcher Galen Hunt.
Late last year, Microsoft made the Singularity source code -- which it called an RDK, or research development kit, available to about a dozen academic partners. Now, anyone can license the code (though it is primarily targeted at academics/researchers).
"Existing operating systems are hard to modify," said Research Area Manager James Larus, "even Linux or the version of the Windows kernel we make available. Singularity is a good place for researchers to (play with) changing the operating system."
Because it was written in C#, Singularity is easier to analyze than other non-managed operating systems, the Microsoft researchers contend. Singularity also is a vehicle for demonstrated that software-isolated processes (SIPs) result in less performance overhead than the hardware-protection schemes commonly used by most operating systems developed over the last 30 to 40 years. Singularity's developers believe that SIPs can result in as much as 30 percent savings in performance.
So now that the first release of Singularity is out, what will its developers do next? Singularity Version 2 -- which will be focused primarily on heterogenous, multicore computing environments, according to Lazrus and Hunt.
Modern and next-generation PCs and devices are moving to include different instruction sets and architectures on multiple cores. Microsoft has launched a number of projects focused on the forthcoming multicore revolution.
"We want to be able to access (all these cores) with the same programming model," said Larus " Think multiple Singularity kernels running on different cores.
To complement this, Singularity's researchers are working on new tools, including some for finding errors in parallel and multicore programs.