[Mono-dev] Looking for pointers on loading an AOT (pre-JITted) binary

Victor Costan costan at MIT.EDU
Sat Aug 19 20:18:53 EDT 2006

Hi everyone,

I'm investigating writing a .net (CIL) kernel. My focus right now is on
bootstrapping the kernel. I figured that the best way of getting it running
is to obtain a processor-specific (Intel-specific at the moment) executable
using Mono's AOT (ahead-of-time) JITter, then have the boot loader get that
executable loaded and running. The problem I'm facing is getting the AOT
product into a state where it can be ran -- I'm not sure exactly what I have
to do, but after a first documentation pass I know that, at a minimum, I
need to set up a GOT (global offset table) so that (even static) method
calls can happen.

Right now I'm thinking I will have a tool 'preload' the file produced by
AOT, do all the necessary work, and produce an image that can be loaded in
memory and run as-is by the boot loader. Having this additional step allows
me to use high-level libraries (such as Cecil), as opposed to re-writing
everything in the boot-loader.

I would really appreciate pointers to the relevant Mono documentation,
projects and people. I'd especially like documentation for the AOT file
format, and opinions from people that are familiar with the Cecil library
and/or CIL processing internals.

Thank you very much for reading this,
	Victor Costan

More information about the Mono-devel-list mailing list