[Mono-devel-list] Hardware Requirements (Porting)

Paolo Molaro lupus at ximian.com
Thu Feb 5 11:58:46 EST 2004

On 02/02/04 Mike Stanley wrote:
> I'm new to the list, fairly new to mono, and definitely a newbie when it
> comes to porting.  I'm an expert J2EE developer, intermediate .NET
> developer, and rusty C developer.  Lately, I've been working primarily in
> the embedded C arena, and would love to be able to port mono to a target
> platform.   I'm not necessarily interested in a JIT runtime compiler, but
> rather just interested in having the ability to compile c# to a native
> application.   

C# need the runtime to run, so you basically always need the jit anyway.

> Before I head down this path, I just wanted to know whether or not it would
> be possible.  What is the minimum system requirements for porting mono?  I'm
> looking for a recommendation (yeah or nah) given the following specs (and
> given your experiences):
> - 166 MHz (MIPS) 32 bit RISC Processor
> - 16 Mb DRAM
> - 4 Mb Graphic Dram
> - 4 Mb Flash EPROM

The current minimum sizes for the runtime is roughly 1 MB for the
runtime and 1 MB for corlib. Of course both contain a lot of code that
may not be needed for the applications that will run on the device and
runtime memory usage could be shrinked a lot, too: we just haven't spent
the cycles to optimize for size, yet.
In the end, it depends on what kind of applications you need to run: you
can run them on mono/x86 and measure memory usage: it would be a fairly 
close estimate of how much it would take on mips. You could also use the
profiling tools to see how memory use and speed could be improved to see
if it would be ok on the embedded platform.

> If possible can someone give me an idea about the level of difficulty and
> time estimate (minus the reading - which I know is substantial.  btw. I have
> a comp. eng. background, with hardware, assembly lang, os dev, experience)

Since mips is very close to ppc, you can probably do a basic port in a
couple of weeks. Supporting exceptions and some of the other advanced
features will take a month or two (of course you need to double or
triple the estimates for unscheduled late night debugging sessions...).
I have already written the low-level code to emit mips native code, so a
chunk of the work is already done:-) Your background is very good for
this sort of porting work, too.
Please also take a look at the porting document as suggested by Miguel
and feel free to ask me (or on the list) any jit and runtime porting 
question you may have.

> P.S.  Out of curiosity has anyone attempted to port mono to the new TI
> and/or ARM based Palm OS devices?  

Malte/Serge started a port of the JIT to ARM, but I don't know what is
the status and it hasn't been submitted for inclusion in cvs. The port
was for Linux: handling the PalmOS weirdnesses would undoubtly increase
the complexity of the port.


lupus at debian.org                                     debian/rules
lupus at ximian.com                             Monkeys do it better

More information about the Mono-devel-list mailing list