KVM (also known as the K Virtual Machine or the KJava Virtual Machine) is a compact, portable Java™ virtual machine that has been designed specifically for small, resource-constrained devices such as cellular phones, pagers, personal organizers, mobile Internet devices, point-of-sale terminals, home appliances, and so forth.
The high-level design goal for the KVM team was to create the smallest possible “complete” Java virtual machine that would maintain all the central aspects of the Java programming language, and that would nevertheless run in a resource-constrained device with only a few tens or hundreds of kilobytes of available memory (hence the name K, for kilobytes). More specifically, KVM is designed to be
KVM is implemented in the C programming language, so it can easily be ported onto various platforms for which an ANSI C compiler is available. The virtual machine has been built around a straightforward bytecode interpreter with various compile-time flags and options for helping porting efforts and space optimization.
KVM has been developed as part of a larger effort to provide a modular, scalable architecture for the development and deployment of portable, dynamically downloadable and secure applications in consumer and embedded devices. This larger effort is called the Java 2 Micro Edition (also known as Java 2 ME or J2ME).
The K Virtual Machine is typically used as the implementation-level foundation for the following J2ME technology standards: Connected, Limited Device Configuration (CLDC) and Mobile Information Device Profile (MIDP). Further information on KVM, CLDC, MIDP and Java 2 Micro Edition in general is available in separate documents listed in Section 1.2 “Related documentation.”
KVM is derived from a research system called Spotless developed originally at Sun Microsystems Laboratories in early 1998. More information on the Spotless system is available in the Sun Labs technical report The Spotless system: implementing a Java system for the Palm connected organizer.
KVM 1.1 is the first KVM implementation that supports the CLDC Specification version 1.1. This release implements all the new features that have been added in CLDC 1.1, including:
For a more detailed summary of the differences between CLDC 1.0 and 1.1, refer to the CLDC Specification version 1.1.
The KVM 1.1 release includes all the functionality and fixes of the previous KVM 1.0.4 release. In addition to the new features that are specific to CLDC Specification version 1.1, the main features of KVM 1.1 compared to KVM 1.0.3 include:
For most up-to-date information, refer to the release notes and KVM product website ( http://java.sun.com/products/kvm).
Important. Unlike the earlier KVM/CLDC releases, the KVM 1.1 implementation no longer includes network protocol implementations, graphical user interface code, or other components that are outside the scope of CLDC Specification. The networking code as well as user interface components are provided in additional J2ME software releases such as the MIDP reference implementation.
KVM Porting Guide , CLDC 1.1 |
Copyright © 2003 Sun Microsystems, Inc. All rights reserved.