* The MonoNet runtime The MonoNet runtime will implement the JIT engine (and a byte code interpreter for quickly porting to new systems), the class loader, the garbage collector, threading system and metadata access libraries. Currently the runtime contains the beginning of an image loader and metadata access entry points. Since Beta2 has been now released, it is possible to resume work using the ECMA specs and testing with Beta2-generated executables. The runtime core will be implemented in C, in a library "libMonoVES.so". ** Executing MSIL/CIL images The code will load an executable and map the references to external assemblies to our own version of the assemblies on GNU/Linux. Our roadmap looks like this: A setup similar to the Kaffe JIT engine can be used to layout the code to support non-IA32 architectures. Our work will be focused on getting a IA32 version running first. The JIT engine should work on Linux and Win32, although you might need to install the CygWin32 development tools to get a Unix-like compilation environment. ** Garbage Collection We have decided to implement a generational tracing garbage collector, which is very similar to the one being used by .NET. For an introduction to the garbage collection system used by Microsoft's CLR implementation, you can read this book on Garbage Collection. Although using a conservative garbage collector like Bohem's would work, all the type information is available at runtime, so we can actually implement a better collector than a conservative collector. ** PInvoke PInvoke will be supported, and will be used to wrap Unix API calls, these in turn are required for reusing some of the GNOME libraries that will reduce the work we have to do to deliver a complete class library.