|
ABSTRACT
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
B. Alpern, D. Attanasio, J. Barton, A. Cocchi, S.F. Hummel, D. Lieber, M. Mergen, T. Ngo, J. Shepherd, and S. Smith. Implementing Jalapeño in Java. In Proceedings ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Denver, Colorado, November 1999. ACM Press.
|
| |
2
|
B. Alpern, C.R. Attanasio, J.J. Barton, M.G. Burke, P. Cheng, J.D. Choi, A. Cocchi, S.J. Fink, D. Grove, M. Hind, S.F. Hummel, D. Lieber, V. Litnivoc, M.F. Mergen, T. Ngo, J.R. Russell, V. Sarkar, M.J. Serrano, J.C. Shepherd, S. Smith, V.C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño virtual machine. IBM System Journal, 39(1), February 2000.
|
| |
3
|
D. Allison. Embedded Linux applications: An overview. http://www-128.ibm.com/developerworks/linux/library/l-embl.html, 2001.
|
| |
4
|
JSR 139 - CLDC 1.1. http://jcp.org/aboutJava/communityprocess/final/jsr139/index.html.
|
| |
5
|
G. Czajkowski. Application isolation in the Java™ virtual machine. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications OOPSLA, pages 354--366, Minneapolis, Minnesota, October 15--19 2000.
|
| |
6
|
C. Flack, T. Hosking, and J. Vitek. Idioms in OVM. Technical Report CSD-TR-03-017, Purdue University, Department of Computer Science, 2003.
|
| |
7
|
M. Golm, M. Felser, C. Wawersich, and J. Kleinoeder. The JX operating system. In Proceedings of the USENIX Annual Technical Conference, pages 45--58, Monterey, CA, June 2002.
|
| |
8
|
D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the future: The story of Squeak, a practical Smalltalk written in itself. In Proceedings ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM Press, October 1997.
|
| |
9
|
Java Platform Debugger Architecture - Java Debug Wire Protocol. http://java.sun.com/products/jpda/doc/jdwp-spec.html.
|
| |
10
|
R. Jones and R. Lins. Garbage Collection--Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons, Chichester, England, 1996.
|
| |
11
|
JSR 121 - Application isolation API specification. http://jcp.org/aboutJava/communityprocess/pfd/jsr121/index.html, 2005.
|
| |
12
|
S. Lohmeier. Jini on the Jnode Java OS. Online article at http://monochromata.de/jnodejni.html, June 2005.
|
| |
13
|
Java 1.6 Mustang. https://mustang.dev.java.net/, 2005.
|
| |
14
|
K. Palacz, J. Baker, C. Flack, C. Grothorff, H. Yamauchi, and J. Vitek. Engineering a customizable intermediate representation. In Proceedings of the Workshop on Interpreters, Virtual Machines and Emulators (IVME), pages 67--76. ACM Press, June 2003.
|
| |
15
|
R. Smith, C. Cifuentes, and D. Simon. Enabling Java™ for small wireless devices with Squawk and Spotworld. OOPSLA Workshop Bringing Software to Pervasive Computing, Oct 16 2005.
|
| |
16
|
D. Schneider, B. Mathiske, M. Ernst, and M. Seidl. Automatic persistent memory management for the Spotless Java™ virtual machine on the Palm connected organizer. In Proceedings of the Java™ Virtual Machine Research and Technology Symposium (JVM'01). USENIX, April 2001.
|
| |
17
|
N. Shaylor, D. Simon, and B. Bush. A Java virtual machine architecture for very small devices. In Proceedings of the Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES), pages 34--41. ACM Press, June 2003.
|
| |
18
|
A. Taivalsaari, B. Bill, and D. Simon. The Spotless system: Implementing a Java™ system for the Palm connected organizer. Technical Report SMLI TR-99-73, Sun Microsystems Research Laboratories, Mountain View, California, February 1999.
|
| |
19
|
D. Ungar, A. Spitz, and A. Ausch. Constructing a metacircular virtual machine in an exploratory programming environment. In Companion Proceedings to the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications OOPSLA, pages 11--20. ACM Press, October 2005.
|
|