[Mono-list] The Mono Virtual Machine...

Jonathan Pryor jonpryor at vt.edu
Fri Mar 3 07:45:16 EST 2006


On Thu, 2006-03-02 at 08:06 -0800, Redefined Horizons wrote:
> How do I learn about the virtual machine used in Mono? (I'm not sure
> if the "virtual machine" is the correct term. I'm talking about the
> software that actually executes the compiled byte code.)

What *precisely* do you want to know about it?

You can learn about what it's supposed to do from the ECMA standards:

        http://www.ecma-international.org/publications/standards/Ecma-335.htm

You can learn about how Mono implements that standard by reading the
Mono source and Mono's internal documentation:

        http://mono.myrealbox.com/source/trunk/mono/docs/
        http://mono.myrealbox.com/source/trunk/mono/mono/
        http://mono.myrealbox.com/source/trunk/mono/mono/mini

"docs" contains internal documentation; "mono" contains the unmanaged
runtime; "mini" contains the JIT IL->assembly engine.

> How do I learn about the compilers used in Mono?

Read a book on compilers:

        http://www.amazon.com/gp/product/0201100886/sr=8-1/qid=1141389728/ref=pd_bbs_1/103-7565899-0839823?%5Fencoding=UTF8

You can read the source to Mono's C# compiler:

        http://mono.myrealbox.com/source/trunk/mcs/mcs

> If I was interested in helping with the development of Mono, how would
> I get started?

See:

        http://www.mono-project.com/Contributing

You should also sign up for mono-devel-list at lists.ximian.com.

And you should find an incomplete area that you're personally interested
in, and start contributing -- e.g. the .NET 2.0 class libraries need
lots of help, generics still have issues IIRC, final nullable type
support, more JIT optimizations...

 - Jon




More information about the Mono-list mailing list