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

By | February 6, 2008, 2:02pm PST

Summary: 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 bornKnown 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.

Kick off your day with ZDNet's daily e-mail newsletter. It's the freshest tech news and opinion, served hot. Get it.

Mary Jo has covered the tech industry for more than 25 years for a variety of publications and Web sites, and is a frequent guest on radio, TV and podcasts, speaking about all things Microsoft-related. She is the author of Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008).

Disclosure

Mary-Jo Foley

Freelance journalist/blogger Mary Jo Foley has nothing to disclose. WYSIWYG (what you see is what you get). I do not own Microsoft stock or stock in any of its partners or competitors. I have no business ventures that are sponsored by/funded by Microsoft or any of its partners or competitors.

Biography

Mary-Jo Foley

Mary Jo Foley has covered the tech industry for 25 years for a variety of publications, including ZDNet, eWeek and Baseline. She has kept close tabs on Microsoft strategy, products and technologies for the past 10 years. In the late 1990s, she penned the award-winning "At The Evil Empire" column for ZDNet, and more recently the Microsoft Watch blog for Ziff Davis.

Got a tip? Send her an email with your rants, rumors, tips and tattles. Confidentiality guaranteed.

Talkback Most Recent of 108 Talkback(s)

  • awesome...another alternative, lightweight OS
    Microsoft ought to rebuild Windows on top of its stripped-down kernel so that Windows can run efficiently with fewer resources.
    ZDNet Gravatar
    killerbunny
    6th Feb 2008
  • ZDNet Gravatar
    No_Ax_to_Grind
    6th Feb 2008
  • Microsoft Troll
    Look at No_Ax, who can only learn Microsoft stuff, because he's too stupid to learn anything else.

    Who can spell "paid for Troll"?
    ZDNet Gravatar
    fr0thy
    7th Feb 2008
  • "paid for" troll?
    Funny - the trolls are always somehow "paid for". Wonder when I can get into some of that action.
    ZDNet Gravatar
    daftkey
    7th Feb 2008
  • LOL. Me too
    Maybe 2008 is the answer?
    ZDNet Gravatar
    fr0thy
    7th Feb 2008
  • who cares
    you dont need anything else...

    really thats true.. whether or not you agree with me is irrelevant.
    ZDNet Gravatar
    pcguy777
    7th Feb 2008
  • Like bottled air
    Pig ignorance such as displayed by yourself would be buying the stuff, believing that you couldn't live without it. Way to go wink
    ZDNet Gravatar
    fr0thy
    9th Feb 2008
  • Actually, it's more like bottled water
    You can get free water from the tub, but some of us prefer to pay for the sparkling bottle of water, in my case that would be MacOSX.
    ZDNet Gravatar
    royalstream
    11th Feb 2008
  • Yeah, that'll really be lightweight.
    Vista requires 1GB RAM, 40GB HD with 15GB free, and a minimum of 128MB graphics memory.

    I'm running Ubuntu on 256MB RAM, 20GB HD with 387MB of free space left, and an old i815 graphics card. Everything runs smoothly, and will continue to run smoothly even if I have 0MB left. To be fair though, I do have a 384MB swap partition. Ubuntu is one of the more bloated out of the Linux distros too.

    Let's face it. Microsoft isn't exactly the expert on being lightweight.
    ZDNet Gravatar
    Amaroq
    7th Feb 2008
  • Well, you might be wrong this time.
    http://en.wikipedia.org/wiki/Windows_7



    Here is the part on MinWin and what is cooking for win7. Italics and emphasis mine.


    Incidentally, the name MinWin was also used earlier to refer to what is currently known as Server Core in Windows Server 2008.[15][17] However, the two are quite different. While both efforts are to consolidate and componentize the core of Windows, with server core, the functionality of the OS is constrained according to server roles, and unneeded components (which will never be used as the role isn't supported) are removed from the binary image. However, the dependencies still exist in code, and the code cannot compile without the components. In contrast, with MinWin, the dependencies are consolidated into MinWin and what is not needed is removed at the code level itself. As a result, the code compiles even without any extraneous components and builds a stripped-down self-contained OS kernel image.
    ZDNet Gravatar
    xuniL_z
    7th Feb 2008
  • This is already happening
    If you look at what Vista contains, as well as XP, and many new APIs, you'll immediately see that most of the recent additions to Windows now depend on a "Managed" subsistem.

    Microsoft is already porting Windows progressively on this base core of APIs, and is already deprecating the Win32 API by putting its documentation far way in MSDN from develoers views. All gets modeled now after .Net and for .Net, even if it finally runs on Win32, but the dependancy of those APIs on Win32 is already decreasing at high speed.

    Win32 gets progressively moved to a lower layer, and its API is now alsmost completely freezed (with the exaception of security bugs that are often solved by rewriting part of it with a managed subsystem.

    This is also true for device drivers, that are now developed with mini-drivers running in user space with stronger isolation from the OS: the OS provides a generic driver that integrates all the others.

    Next generation versions of Windows will run in a VM as well as the applications "plugged" into it and more easily manageable and deployable. There won't be however a revolution, like restarting from scratch from a micro kernel, instead most OS services will progressively be migrated by splitting them in several layers with less cyclic dependencies, and finally some lower layers (specific to some old architectures) will be removed when they are no longer needed to support the upper layer.

    I think that Win32 is now in end of life, and usage of .Net within Windows is constantly increasing. Most applications will no loger depend on Win32 if you follow the upgrade path already strongly suggested by the MSDN documentation.

    Yes, initially, there's a performance cost when porting your application to some VM, but the cost is already small enough and rapidly compensated by the fact that applications already have to run on PCs with very wide differences in terms of performance and capabilities.

    So what is important? Getting the maximum performance on a single host with a single CPU core, or getting the maximum performance on a large and extensible platform with networking capabilities, that still has many unused resources that a VM could harness to offer much better scalability and better integration, focusing on user demands on the platform as a whole instead of just on a single device?

    Just look at your home environment: there are now computing resources everywhere in many products. Electronic and processors are present everywhere. Why can't they collaborate to create a much more powerful platform with more versatile use and from everywhere?
    ZDNet Gravatar
    PhilippeV
    7th Feb 2008
  • Nice commercial....
    ...exactly in the line of those .NET MS ads.
    ZDNet Gravatar
    alf@...
    7th Feb 2008
  • Jealous...
    Because they did their homework. Let me Guess - MAC Boy (said with a very feminite accent) or Linux...which is it. You need another forum.
    ZDNet Gravatar
    ItsTheBottomLine
    7th Feb 2008
  • Both are important
    "So what is important? Getting the maximum performance on a single host with a single CPU core, or getting the maximum performance on a large and extensible platform with networking capabilities"

    Actually, which one is important depends on the individual or business. An individual who has only one computer will not need the extensible platform. The same goes for a small business which does not have a LAN.
    However, for businesses that do have LANs or use client/servers then the networking platform option could be more attractive. One solution is not going to fit everyone's needs.
    ZDNet Gravatar
    alaniane@...
    7th Feb 2008
  • This is already happening
    >>>If you look at what Vista contains, as well as XP,

    Tes, all of that spaghetti is nice.
    ZDNet Gravatar
    joe6pack_z
    7th Feb 2008

Talkback - Tell Us What You Think

Formatting +
BB Codes - Note: HTML is not supported in forums
  • [b] Bold [/b]
  • [i] Italic [/i]
  • [u] Underline [/u]
  • [s] Strikethrough [/s]
  • [q] "Quote" [/q]
  • [ol][*] 1. Ordered List [/ol]
  • [ul][*] · Unordered List [/ul]
  • [pre] Preformat [/pre]
  • [quote] "Blockquote" [/quote]

The best of ZDNet, delivered

ZDNet Newsletters

Get the best of ZDNet delivered straight to your inbox

Facebook Activity

White Papers, Webcasts, & Resources