"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?