InfoQ

News

Singularity: Microsoft's Open Source Operating System

Posted by Jonathan Allen on Nov 18, 2008

Community
.NET
Topics
Open Source ,
Operating Systems ,
Research
Tags
Singularity

The Singularity project was started in 2003 as a fundamental redesign of how operating systems work. From the ground up everything is based on the concepts of isolation and verifiability.

Processes are highly isolated from one-another. Communication is done strictly via type-safe channels, shared memory of any form is not allowed. Processes are "sealed", meaning they cannot dynamically load or generate code. This has the advantage of making virus injection virtually impossible, at the cost of not being able to use dynamic link libraries or meta-programming techniques.

Other than a small part of the kernel, the bulk of Singularity is written in the type-safe language Sing#. Instead of platform specific assembly languages, Singularity uses .NET's IL as the lowest common denominator. Singularity will not even try to load unmanaged applications.

The first 2.0 release includes the full source code tree and a bootable CD image. A Virtual PC file is also available in this release.

In an unusual move by Microsoft, Singularity is soliciting patches and offering full developer rights on CodePlex.

We're also looking to increase community participation in the RDK 2 - so if you're using the RDK for something cool, let us know on the Discussions tab, and submit Patches on the Source Code tab. Patches will be integrated into the codebase, so that other RDK users can take advantage of your work. We will grant Developer permissions to frequent contributors to help streamline their contributions and let the users drive the future of the RDK.

OSS? No DLLs? No meta-programming? Really? by Stefan Wenig Posted Nov 18, 2008 9:06 AM
  1. Back to top

    OSS? No DLLs? No meta-programming? Really?

    Nov 18, 2008 9:06 AM by Stefan Wenig

    it's not quite OSS: www.codeplex.com/singularity/license
    Microsoft Research License Agreement
    Non-Commercial Academic Use Only

    And I think that "at the cost of not being able to use dynamic link libraries or meta-programming techniques" is a harsh misinterpretation. First, in .NET all libaries are DLLs, even if they are statically referenced. I'd assume that it's the same in Singularity, so this would just prevent us from loading add-ins at runtime in the same process. Second, meta-programming is probably just requiring setting up new processes too, which Singularity should be good at (static verification makes memory boundaries unnecessary, leading to faster process launches and context switches).

    I hope MS is following this path. In a world of virtualization, there might be a sensible, practical path to a new OS paradigm.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.