[Mono-list] Mono and MS Singularity

Joshua Tauberer jit at occams.info
Wed Oct 25 14:41:45 EDT 2006

Andreas Färber wrote:
>> Alessandro Bottoni wrote:
>>> I'm sure you know MS Singularity 
>>> (http://research.microsoft.com/os/singularity/).
>>> Singularity is something like a kernel (similar to Mach) + a
>>> virtual machine (similar to Mono/.NET VM) + a language (similar
>>> to C# but with special contract-programming and multithreading
>>> features). (Yes, it is much more than this but... ignore that,
>>> for the moment).
>>> I wonder if anybody has even thought to re-create something like 
>>> Singularity starting from Mono (or GNU.NET). I mean, something
>>> like this: 1) a kernel (Linux, Mach, a "managed code" kernel
>>> written in C#, whatever...) 2) the Mono virtual machine (maybe
>>> with support for "channels" and other stuff)
>> [...] I was playing around with writing a managed runtime last
>> month, that is, a .NET VM written in C#.  Some info here:
>> http://razor.occams.info/blog/?p=41
> I've been looking into the idea of writing a CLI interpreter myself
> and I noticed that mcs and gmcs emit a Microsoft-style metadata
> version string in the assembly. Did you find a way for your
> assemblies to strictly adhere to the ECMA standard?

Strict adherence is something well beyond what I got to the point of
thinking about.  I was following ECMA-335 June 2006 (to the extent I was
following anything).

> Concerning the thought of a managed OS, wouldn't that either mean
> you'd have to write it in assembler and thus architecture-specific or
> you'd need CLI-specific hardware?

It turns out (IMO) that the notion of CLI-specific hardware isn't so
interesting, or practical.  The part of my managed runtime  that
involves executing IL instructions is pretty minimal compared to the
infrastructure necessary to handle the whole type system, for instance.
 callvirt, castclass, and newobj are all very complicated instructions
-- especially compared to native instructions like add, mov, etc.  In
order to have CLI-specific hardware, you'd really need to have the whole
Mono runtime implemented in hardware, and that seems kind of ridiculous. :)

- Joshua Tauberer


"Strike up the klezmer and start acting like a man. You're
about to have a truth-mitzvah."  -- The Colbert Report

More information about the Mono-list mailing list