Cosmos: An open-source .Net-based microkernel OS is born

Move over, Microsoft Singularity. There's another microkernel, C#-based operating system in town. And this one's available under an open-source license.

Move over, Microsoft Singularity. There's another microkernel, .Net-based operating system in town. And this one's available under an open-source license.

Cosmos: An open-source C# microkernel OS is born
Known as Cosmos, the new, independently developed operating system (OS) is the brain child of former Microsoft Developer and Platform Evangelism team member Chad "Kudzu" Hower. Unlike Singularity -- version one of which Microsoft released last year (and only to university researchers and academics) -- Cosmos is available to anyone, Hower said. The developers released Milestone 1 of Cosmos at the very end of January.

From the Cosmos Frequently Asked Questions (FAQ) document, which asked "Why Develop Cosmos?":

"Primarily because it's fun. But beyond that, how else can you boot .NET on a floppy or small USB stick? Who else will try to put .NET on the Wii, OLPC (One Laptop Per Child PC), and iPhone?

"We are also developing a TCP/IP stack. Imagine instead of deploying half a dozen virtualized OS's, deploying many dozens of dedicated OS's. One that only does DNS, a few that only do HTTP, etc. One instance, one function."

Cosmos comes with a compiler (IL2CPU) that compiles the resulting intermediate language (IL) to X86 code. The compiler includes a cross-platform-support layer, and the Cosmos team says it plans to add support for other processors and platforms, including x64. Developers can use any .Net language to write to Cosmos.

I had a chance to ask a few additional questions of Hower via e-mail. Here's our exchange:

MJF: What is Cosmos?

Kudzu: Cosmos (Its only upper case C, ie not COSMOS or CosmOS) is an acronym for C# Open Source Managed Operating System.

MJF: What's a one-sentence, layperson's definition of Cosmos?

Kudzu: Cosmos is a set of operating system legos written completely in C# that allow developers to easily build custom OSes with little OS experience by simply selecting new project in Visual Studio, then pressing F5 to build, deploy, and debug.

MJF: What, if anything, does Cosmos have to do with Microsoft's Singularity, an operating system developed by Microsoft Research that written entirely in managed code?

Kudzu: It certainly has a lot in common with Singularity. But unlike Singularity, Cosmos is publicly available now with full source code. Anyone can try it and participate. We have cross-platform plans. So this will allow us to also run Cosmos on the Wii, iPhone, etc.

MJF: Cosmos is an open-source project hosted on Microsoft's CodePlex repository. How does that work, in terms of you retaining your independence?

Kudzu: Cosmos is an independent project from Microsoft. I'm a former Microsoft FTE (full-time employee) myself and still heavily involved with Microsoft as I am Microsoft Regional Director, but Cosmos is independent. Cosmos is licensed under the BSD license though, so generally there are no issues....We are free to support anything we want.

MJF: Is Cosmos written entirely in managed code (like Microsoft's Singularity is, I believe)? If it is, why did you go this route?

Kudzu: Singularity actually has a fair bit of C or C++ down in the core. Cosmos is 100% C#. The only assembly is emitted by our compiler.

MJF: Is Microsoft helping or supporting Cosmos project in any way?

Kudzu: Not currently. We just went public very recently. There has been a lot of independent interest from Microsoft. What I mean by this is not the dev groups, but the evangelists are really grabbing on to it and helping spread the word. When I was with Microsoft I was in Developer Evangelism, so I understand why. Its "super geeky" and so its really interesting to developers of all types.