Basser Seminar Series

The Squawk Java(TM) Virtual Machine - Java on the Bare Metal of Wireless Sensor Devices

Cristina Cifuentes
Sun Research, Brisbane

Wednesday 26 July 2006, 2-4 pm (Note change of time)

School of IT Building, Room 123


The Squawk virtual machine is a small Java(TM) virtual machine (VM) written mostly in Java that runs without an operating system on the Sun SPOT wireless sensor platform developed at Sun Microsystems Research Laboratories (Sun Labs). Industry and academia have received this device with much excitement, as it brings Java to the world of wireless sensor/actuator allowing developers to use standard development tools to work directly on device. Current state-of-the-art requires developers to program in low-level languages with little or no debugging support while running on device.

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) using the IEEE 802.15.4 protocol. 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.

In this talk I will describe design decisions that made the Squawk JVM suitable for the Sun SPOT platform, and will provide some samples of code and demoes.

Speaker's biography

Cristina Cifuentes is a researcher at Sun Labs where she's worked in the areas of compilation techniques for virtual machines, parallelizing compilers, and binary translation. Prior to joining Sun Labs in 1999, she held academic positions at The University of Queensland and The University of Tasmania. Cristina obtained a PhD in Computer Science from the Queensland University of Technology in 1994, for her work on decompilation of binary programs. She has served in the Program Committees of conferences in the areas of compilers, virtual machines, program maintenance, program comprehension, and software engineering. After 6 years in California, she is now based in Brisbane, Australia.