Mika VM is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
implementation of the
Java virtual machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describ ...
specification, together with class libraries which implement the
Connected Device Configuration of
Java ME
Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices (micro-controllers, sensors, gateways, mobile phones, personal digital assistants, TV set-top ...
. Mika VM is based on
Wonka VM
The Wonka VM is an open-source, portable, embedded implementation of the Java virtual machine specification, together with class libraries which implement most of the Connected Device Configuration of Java ME, version 1.0. The VM itself was dev ...
, which was developed independently of any other implementation, including Sun Microsystem's
RI. The same is true of most of the class libraries, but in this case some code is drawn from the
GNU Classpath and
Apache Harmony
Apache Harmony is a retired Open-source software, open source, free Java implementations, free Java implementation, developed by the Apache Software Foundation. It was announced in early May 2005 and on October 25, 2006, the Board of Directors ...
projects. MikaVM support
MIDP (Mobile Information Device Profile) 1.0 and 2.0,
CDC (Connected Device Configuration) Personal Profile.
Mika VM was created by one of the original
Wonka VM
The Wonka VM is an open-source, portable, embedded implementation of the Java virtual machine specification, together with class libraries which implement most of the Connected Device Configuration of Java ME, version 1.0. The VM itself was dev ...
developers after Acunia's demise and the acquisition of its assets by Punch International. The original intention was to create a smaller VM (a mini- or micro-Wonka, hence the name) which would be useful for example on
ARM7TDMI
ARM7 is a group of 32-bit RISC ARM processor cores licensed by ARM Holdings for microcontroller use. The ARM7 core family consists of ARM700, ARM710, ARM7DI, ARM710a, ARM720T, ARM740T, ARM710T, ARM7TDMI, ARM7TDMI-S, ARM7EJ-S. The ARM7TDM ...
devices with no
MMU. In time however Mika became a full replacement for Wonka, and may be considered as its successor. Mika is based on the Wonka codebase, and is also open source under the
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD li ...
.
Like Wonka, Mika is intended for use in embedded devices. The VM and class libraries are therefore purposely limited to the packages required by the
OSGi Execution Environment, and features introduced in Java5 or later are not supported. This results in a smaller footprint, with non-AWT versions requiring less than 2 MB of persistent storage. Supported operating systems are
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
and
uClinux (a proof-of-concept port to
eCos has also been made), and supported architectures include x86, arm, mips, and powerpc, including non-MMU variants where applicable. In principle it should be possible to build Mika for any 32-bit CPU for which a GNU toolchain is available.
See also
*
List of Java virtual machines
*
Comparison of application virtual machines
*
List of JVM languages
References
{{Java Virtual Machine
Java virtual machine
Software using the BSD license