skip to main content
10.1145/1134760.1134773acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
Article

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

Published: 14 June 2006 Publication History

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

[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.

Cited By

View all
  • (2023)Parallelising semantic checking in an IDE: A way toward improving profits and sustainability, while maintaining high-quality software developmentActa Universitatis Sapientiae, Informatica10.2478/ausi-2023-001615:2(239-266)Online publication date: 12-Dec-2023
  • (2022)Ease Virtual Machine Level Tooling with Language Level Ordinary Object PointersProceedings of the 14th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3563838.3567676(1-12)Online publication date: 29-Nov-2022
  • (2022)Differential testing of simulation-based VM generatorsProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3507171(1280-1283)Online publication date: 25-Apr-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
VEE '06: Proceedings of the 2nd international conference on Virtual execution environments
June 2006
194 pages
ISBN:1595933328
DOI:10.1145/1134760
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 June 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. IEEE 802.15.4
  2. Java virtual machine
  3. Sun SPOT
  4. embedded systems
  5. wireless sensor networks

Qualifiers

  • Article

Conference

VEE06

Acceptance Rates

Overall Acceptance Rate 80 of 235 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)1
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Parallelising semantic checking in an IDE: A way toward improving profits and sustainability, while maintaining high-quality software developmentActa Universitatis Sapientiae, Informatica10.2478/ausi-2023-001615:2(239-266)Online publication date: 12-Dec-2023
  • (2022)Ease Virtual Machine Level Tooling with Language Level Ordinary Object PointersProceedings of the 14th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3563838.3567676(1-12)Online publication date: 29-Nov-2022
  • (2022)Differential testing of simulation-based VM generatorsProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3507171(1280-1283)Online publication date: 25-Apr-2022
  • (2022)Differential Testing of Simulation-Based Virtual Machine GeneratorsReuse and Software Quality10.1007/978-3-031-08129-3_7(103-119)Online publication date: 10-Jun-2022
  • (2019)Shared Sensor Networks Fundamentals, Challenges, Opportunities, Virtualization Techniques, Comparative Analysis, Novel Architecture and TaxonomyJournal of Sensor and Actuator Networks10.3390/jsan80200298:2(29)Online publication date: 15-May-2019
  • (2019)Scalable Personalized IoT NetworksProceedings of the IEEE10.1109/JPROC.2019.2894515107:4(695-710)Online publication date: Apr-2019
  • (2018)AlkylVM: A Virtual Machine for Smart Contract Blockchain Connected Internet of Things2018 9th IFIP International Conference on New Technologies, Mobility and Security (NTMS)10.1109/NTMS.2018.8328732(1-4)Online publication date: Feb-2018
  • (2017)CerberOS: A Resource-Secure OS for Sharing IoT DevicesProceedings of the 2017 International Conference on Embedded Wireless Systems and Networks10.5555/3108009.3108023(96-107)Online publication date: 20-Feb-2017
  • (2017) Considerations for OS V over Linux-based virtual machines 2017 12th International Conference for Internet Technology and Secured Transactions (ICITST)10.23919/ICITST.2017.8356415(346-348)Online publication date: Dec-2017
  • (2017)Sancus 2.0ACM Transactions on Privacy and Security10.1145/307976320:3(1-33)Online publication date: 31-Jul-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media