Xamarin Mono for Android Now Runs on MIPS
Xamarin has completed the Mono port to MIPS and now offers Mono for Android running on the MIPS architecture besides the ARM one.
Mono, the open source implementation of C# and CLR, has been ported to different architectures over time including the well-known x86, x86-64-bit, ARM, I64, PowerPC, SPARC 32, but also the less used Alpha and HPPA, the two architectures currently not being maintained. There have also been attempts to port Mono to the MIPS architecture starting with version 1.2.1.
MIPS Technologies has ported Android 4.0 to their platform and has announced a number of low cost devices during MWC 2012, including an ICS tablet launched in Indonesia for only $33 and another in China for less than $100. Xamarin, the company providing tools for developing cross-platform Mono applications for iOS and Android, has worked with MIPS to make available Mono for Android on the MIPS architecture, enabling the development of C# applications on such devices.
Miguel de Icaza, CTO of Xamarin, has provided us with some details on the MIPS port:
We completed a MIPS port that was started, but never completed in the last 4-6 years for older versions of Mono.
Since the internals of Mono have changed quite a bit since then, we had to redo the work to support MIPS, but most importantly, we had to do a complete port that passed our entire test suite. Previous efforts had gotten the basics running, but for us to release a product, we needed to make sure that the port was complete to support all of the features of the Mono runtime from tiny operating systems used for embedded devices as well as Android devices to the larger uses on server computers.
It helps that there is a renewed interest in the market for processors with a low-power consumption profile.
de Icaza also mentioned that the MIPS port includes a complete JIT which passes the entire Mono test suite, but it does not have support for AOT because “this is a technology that is typically used for desktop deployments or locked-down environments like the iPhone or game consoles that prevent the JIT engine from running.”