At the annual Microsoft TechFest eventâ€”which began today at the company's headquarters in Redmondâ€”Microsoft's senior vice president of research, Rich Rashid, announced that the source code of the Singularity project will be available for download from Microsoft's Codeplex web site.
The Singularity project is an experimental microkernel and operating system developed primarily with managed code, and it uses static analysis to ensure high dependability. Singularity uses Microsoft's experimental Bartok compiler, which translates .NET Common Intermediate Language (CIL) into optimized native code.
Although Singularity incorporates some very intriguing theoretical concepts, the operating system itself is developed exclusively for research purposes and is not intended for practical use. Some of the underlying principles may one day inspire future Windows design decisions, but not in the foreseeable future.
"Singularity is not the next Windows," Rashid said in a statement. "Think of it like a concept car. It is a prototype operating system designed from the ground up to test-drive a new paradigm for how operating systems and applications interact with one another. We are making it available to the community in the hope that it will enable researchers to try out new ideas quickly."
Singularity architecture. Image source: Microsoft
Much of Singularity is developed with Sing#, which builds on Spec#, an extension of C# that adds Eiffel-like design-by-contract paradigms for programmatic verifiability. Sing# adds support for channelsâ€”first-class asynchronous message-passing constructs. Singularity also introduces a software-isolated process (SIP) mechanism, which makes it possible for lightweight processes to coexist safely with their own sealed code environments in the same memory space. All communication between SIPs is conducted through channels. The use of SIPs effectively eliminates the overhead traditionally incurred by context-switching in conventional microkernels.
Although the Singularity research development kit (RDK) is available for download, it is not technically open source. The source code is distributed under the terms of the restrictive Microsoft Research License rather than one of Microsoft's two OSI-approved open source licenses. Singularity can only be used for noncommercial academic use, and the license for the Singularity RDK explicitly stipulates that you can't use the included compilers to develop production software. Developers who are interested in open source managed code kernels that can be used in commercial and production environments might want to look at the SharpOS and Cosmos projects, which we wrote about early last month.
The Singularity project illuminates the broader implications of using managed code to develop operating system components. Although we probably won't see anything like Singularity running on desktop computers any time in the near future, the concepts have a lot of theoretical merit and will likely interest many in the academic community.