[Mono-dev] [Mono-devel-list] Operating System in C# Project

Michael Hutchinson m.j.hutchinson at gmail.com
Thu Sep 28 09:59:19 EDT 2006

On 9/28/06, Suresh Shukla <skshukla_ncr at yahoo.co.in> wrote:
> This is very interesting idea.
> I had been thinking about this for some time. To bring the language
> cleanliness and clarity of Java / C# down to OS layer.
> The OS I have in my focus is mikrokernel based distributed servers
> architecture, actually MINIX. Minix brings many best practices and
> cleanliness from OS side.
> In my opinion a compiler for generating native code from C# would be
> required. Then the task could boil down to a port/rewrite of MINIX.
> Suresh

I couldn't find the email to which this was a reply, so I'm probably
bringing up something that's already been mentioned.

MS Research is currently running a fascinating OS project called
Singularity, of which large portions are written in C# (and
derivatives), though it does use some C, ASM and C++. There's a bit
about it at http://en.wikipedia.org/wiki/Singularity_(operating_system)

The OS runs CIL code, and because it's fully verifiable so they can
completely do away with hardware memory management. The GC is at the
OS level (and written in C#). Then after it's been verified they can
compile the CIL down to native code.

The problem with writing an OS in C# is of course making a fully
managed runtime and class libraries. Even if you can compile to native
code (e.g. Mono's AOT compiler) you'll still need some kind of
runtime, and if that's managed it'll need a runtime etc... Basically
you have to break this cyclic dependency somehow with bits of
unmanaged code somewhere, even if it's implemented as specialised
compiler output.

Michael Hutchinson

More information about the Mono-devel-list mailing list