Syndicate the Cosmos Blog Feed.

FAQ

These are answers that newcomers may find helpful.

How is Cosmos licensed?

Cosmos is licensed under the New BSD license.

What does Cosmos stand for?

Officially is it the "C# Open Source Managed Operating System", but we just go by Cosmos. In fact, the name Cosmos was chosen before any meaning was attributed to it. Later we decided by chance what the letters stood for. Thus it is also Cosmos, and not COSMOS or CosmOS.

Can I use Visual Basic.NET? Ruby? Other

Cosmos is actually not tied to C#, despite C# being part of the name. Cosmos will work with any .NET language that compiles to pure IL without P/Invokes.

Can I use Delphi.NET?

Maybe. Unfortunately the Delphi libraries for full of P/Invokes. If you only use the .NET libraries, and use the .NET 2.0 version it might work. Alternatively, you could use Chrome.

Who develops Cosmos?

A handful of developers with some spare time.

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, 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.

What is the Project Vision?

We would like to design Cosmos as:

How does Cosmos compare to Singularity?

Cosmos and Singularity have a lot in common. Singularity however is only a research project to determine usefulness of pieces that might later be used in .NET and or future versions of Windows. Singularity itself is not intended to ship as a Microsoft supported operating system. In March 2008 Singularity was released to the public on CodePlex. However the license is for academic use only and thus differs greatly from the goals of Cosmos. Developers of Cosmos should not look at Singularity source to avoid contaminating Cosmos and violating the Singularity license.

If you have looked at Singularity the past, you are welcome to develop on Cosmos however you must be careful not to use your knowledge of Singularity. Unless you were involved deeply into Singularity code this will likely not be a problem. If you are concerned about this, choose purposefully to develop in a different area of functionality in Cosmos.

How does Cosmos compare to the .NET Micro Framework?

The .NET Micro Framework targets tiny devices and is interpreted. Cosmos targets both large and low resource machines and is compiled.

Can Cosmos be developed using x64?

Yes. Many of the developers on the team are using 64 bit Windows.

What version of Visual Studio can I use to develop Cosmos?

Currently we only support Visual Studio 2008. We plan to support Visual Studio 2010 in the future, but right now we have more important features to complete.

What about Visual Studio Express?

Starting with Milestone 5, Visual Studio Express will no longer be supported. We are investigating how we might support Visual Studio Express again in the future for at least basic development. To further the features of Cosmos development we rely on extending Visual Studio, and Visual Studio Express does not support any add ins.

Why did Milestone 5 take so long?

First, it was very complex to create a full integration into Visual Studio. Second we suffered a lot of bugs in the Windows version of QEMU which set us back many months.

Your website suck! Can I help?

Yes of course. But you must use OUR CMS. Every few weeks someone offers to webmaster and covnert it to their favourite CMS or web language. Then they often disappear leaving it with us again... So because we always end up with the bag, and wish to do at least minor updates as well, we decide the web system to us. Otherwise yes, webmaster away!

I'm getting an error about a plug. What can I do?

Plugs are pieces of code that replace functionality provided by Windows or a native code DLL to a .NET library. Not all "holes" have been filled and we plug them as we need them. So if you see this error, it means you are trying to access something that has not been plugged yet. You can write a plug, or try an alternate method that has a plug or does not need a plug.

What works?

Console apps.

What doesn't work (of notable mention)?