Java™ on the bare metal of wireless sensor devices: the squawk Java virtual machine

The Squawk virtual machine is a small Java™ virtual machine (VM) written mostly in Java that runs without an operating system on a wireless sensor platform. Squawk translates standard class file into an internal pre-linked, position independent format that is compact and allows for efficient execution of bytecodes that have been placed into a read-only memory. In addition, Squawk implements an application isolation mechanism whereby applications are represented as object and are therefore treated as first class objects (i.e., they can be reified). Application isolation also enables Squawk to run multiple applications at once with all immutable state being shared between the applications. Mutable state is not shared. The combination of these features reduce the memory footprint of the VM, making it ideal for deployment on small devices.Squawk provides a wireless API that allows developers to write applications for wireless sensor networks (WSNs), this API is an extension of the generic connection framework (GCF). Authentication of deployed files on the wireless device and migration of applications between devices is also performed by the VM.This paper describes the design and implementation of the Squawk VM as applied to the Sun™ Small Programmable Object Technology (SPOT) wireless device; a device developed at Sun Microsystems Laboratories for experimentation with wireless sensor and actuator applications.

[1]  Daniel Schneider,et al.  Automatic Persistent Memory Management for the Spotless Java Virtual Machine on the Palm Connected Organizer , 2001, Java Virtual Machine Research and Technology Symposium.

[2]  David M. Ungar,et al.  Constructing a metacircular Virtual machine in an exploratory programming environment , 2005, OOPSLA '05.

[3]  William R. Bush,et al.  A java virtual machine architecture for very small devices , 2003, LCTES '03.

[4]  Grzegorz Czajkowski,et al.  Application isolation in the Java Virtual Machine , 2000, OOPSLA '00.

[5]  Jan Vitek,et al.  Idioms in Ovm , 2003 .

[6]  Bowen Alpern,et al.  Implementing jalapeño in Java , 1999, OOPSLA '99.

[7]  Acm Sigplan Proceedings of the ... ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems : LCTES , 2004 .

[8]  H. Yamauchi,et al.  Engineering a customizable intermediate representation , 2003, IVME '03.

[9]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[10]  Michael Golm,et al.  The JX Operating System , 2002, USENIX Annual Technical Conference, General Track.

[11]  Antero Taivalsaari,et al.  The Spotless System: Implementing a Java System for the Palm Connected Organizer , 1999 .

[12]  Grzegorz Czajkowski Application isolation in the JavaTM Virtual Machine , 2000, OOPSLA.

[13]  Stephen J. Fink,et al.  The Jalapeño virtual machine , 2000, IBM Syst. J..

[14]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .