Mika VM
Encyclopedia
The Mika VM is an open source
implementation of the Java virtual machine
specification, together with class libraries which implement the Connected Device Configuration
of Java ME. The Mika VM is based on the Wonka VM
, 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
projects.
The Mika VM was created by one of the original Wonka VM
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
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.
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
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.
Mika development takes place on the Open Mika web site. Commercial support is available from Kiffer Ltd and /k/ Embedded Java Solutions.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
implementation of the Java virtual machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
specification, together with class libraries which implement the Connected Device Configuration
Connected Device Configuration
The Connected Device Configuration is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CDC is combined with one or more profiles to give developers a platform for building...
of Java ME. The Mika VM is based on the Wonka VM
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 developed independently of any other implementation,...
, 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
GNU Classpath
GNU Classpath is a project aiming to create a free software implementation of the standard class library for the Java programming language. Despite the massive size of the library to be created, the majority of the task is already done, including Swing, CORBA, and other major parts. The Classpath...
and Apache Harmony
Apache Harmony
Apache Harmony was an open source, 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 voted to make Apache Harmony a top-level project...
projects.
The Mika VM was created by one of the original Wonka VM
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 developed independently of any other implementation,...
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
ARM7TDMI
ARM7 is a generation of ARM processor designs. This generation introduced the Thumb 16-bit instruction set providing improved code density compared to previous designs. The most widely used ARM7 designs implement the ARMv4T architecture, but some implement ARMv3 or ARMv5TEJ...
devices with no MMU
Memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...
. 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.
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
OSGi
The Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...
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
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
and uClinux
UClinux
μClinux stands for "MicroController Linux," and is pronounced "you-see-Linux" as explained on the website, not the way the Greek letter mu is normally pronounced. It was a fork of the Linux kernel for microcontrollers without a memory management unit...
(a proof-of-concept port to eCos
ECos
eCos is an open source, royalty-free, real-time operating system intended for embedded systems and applications which need only one process with multiple threads. It is designed to be customizable to precise application requirements of run-time performance and hardware needs...
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.
Mika development takes place on the Open Mika web site. Commercial support is available from Kiffer Ltd and /k/ Embedded Java Solutions.
See also
- List of Java virtual machines
- Comparison of application virtual machinesComparison of Application Virtual MachinesThis article lists some software virtual machines that are typically used for allowing application bytecode to be portably run on many different computer architectures and operating systems. The application is usually run on the computer using an interpreter or just-in-time compilation...
- List of JVM languages