Abstract
Jalapeño is a virtual machine for Java™ servers written in Java.
A running Java program involves four layers of functionality: the user code, the virtual-machine, the operating system, and the hardware. By drawing the Java / non-Java boundary below the virtual machine rather than above it, Jalapeño reduces the boundary-crossing overhead and opens up more opportunities for optimization.
To get Jalapeño started, a boot image of a working Jalapeño virtual machine is concocted and written to a file. Later, this file can be loaded into memory and executed. Because the boot image consists entirely of Java objects, it can be concocted by a Java program that runs in any JVM. This program uses reflection to convert the boot image into Jalapeño's object format.
A special MAGIC class allows unsafe casts and direct access to the hardware. Methods of this class are recognized by Jalapeño's three compilers, which ignore their bytecodes and emit special-purpose machine code. User code will not be allowed to call MAGIC methods so Java's integrity is preserved.
A small non-Java program is used to start up a boot image and as an interface to the operating system.
Java's programming features — object orientation, type safety, automatic memory management — greatly facilitated development of Jalapeño. However, we also discovered some of the language's limitations.
- 1 Bowen Alpern, Dick At~anasio, John J. Barton, Michael G. Burke, Perry Cheng, Jong-Deok Choi, Anthony Cocchi, Stephen Fink, David Grove, Michael Hind, Susan Flynn Hummel, Derek Lieber, Vassily Litvinov, Ton Ngo, Mark Mergen, Vivek Sarkar, Mauricio J. Serrano, Janicc Shepherd, Stephen Smith, V. C. Sreedhar, Harini Srinivasan, and John Whaley. The Jalepefio virtual machine. IBM Systems Journal, 2000. Google ScholarDigital Library
- 2 Bowen Alpern, Mark Charney, Jong-Deok Choi, Anthony Cocchi, and Derek Lieber. Dynamic hnking on a shared-memory microprocessor. In International con- ~erence on Parallel Architectures and Compiler Techniques, October 1999. Google ScholarDigital Library
- 3 Bowen Alpern, Anthony Cocchi, Derek Lieber, Mark Mergen, and Vivek Sarkar. J~lapefio -- a Compiler- Supported Java Virtual Machine for Servers. In A CM SIGPLAN 1999 Workshop on Compiler Support }or System Software (WCSSS'99), May 1999. (Also available as INRIA report No. 0228, March 1999.).Google Scholar
- 4 David F. Bacon, Ravi Konuru, Chet Murthy, and Mauricio Serrano. Thin locks: featherweight synchronization for Java. In SIGPLAN '98 Conference on Programming Language Design and Implementation, pages 258-268, June 1998. Google ScholarDigital Library
- 5 Michael G. Burke, Jong-Deok Choi, Stephen Fink, David Grove, Michael Hind, Vivek Sarkar, Mauricio J. Serrano, V. C. $reedhar, Harini Srinivasan, and John Whaley. The Jalapefio Dynamic Optimizing Compiler for Java. In A CM Java Grande Conference, June 1999. Google ScholarDigital Library
- 6 John Chapin. Personal communication re. the Rivet project at MIT. See http://sdg.lcs.mit.edu/rivet.html for further information.Google Scholar
- 7 John Duimovich. Personal communication.Google Scholar
- 8 James Goshng, Bill Joy, and Guy Steele. The Java Language Specification. The Java Series. Addison-Wesley, 1996. Google ScholarDigital Library
- 9 The java Hotspot Performance Engine Architecture. White paper available at http://j ava. sun.corn/products/h otspot/whitepaper.html.Google Scholar
- 10 IBM Corporation. AIX Version ,~.3 Technical References, 1998.Google Scholar
- 11 Dan Ingels, Ted Kaehler, John Maloney, Scott Wallace, and Alan Kay. The Story of Squeak, A Practical Smalltalk Written in Itself. In Proceedings of the 1997 A CM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOP- SLA '97), pages 318-326, October 1997. Google Scholar
- 12 Java development kit 1.1, see http://j ava. sun. corn/marketing/collar er al/j dk_ so. ht ml.Google Scholar
- 13 Richard Jones and Rafael Lins. Garbage Collection: Algorithms }or Automatic Dynamic Memory Management. John Wiley & Sons, 1996. Google ScholarDigital Library
- 14 Tim Lindholm and Frank Yellin. The Java Virtual Machine Specij~cation. The Java Series. Addison-Wesley, 1996. Google ScholarDigital Library
- 15 Cathy May, Ed Sflha, Rick Simpson, and Hank Warren. The PowerPC Architecture. Morgan Kaufmann Publishers, Inc., San Francisco, California, 1994.Google Scholar
- 16 Tamiya Onodera and Kiyokuni Kawachiya. A study of locking objects with bimodal fields. In A CM Conference on Object-Oriented Programming Systems, Languages, and Applications, November 1999. Google ScholarDigital Library
- 17 James M. Stichnoth, Guei-Yuan Lueh, and Michal Cierniak. Support for garbage collection at every instruction in a java compiler, in SIGPLAN 'Y9 Conference on Programming Language Design and Implementation, pages 326-336, May 1999. Google Scholar
- 18 Antero Taivalsaari. implementing a Java Virtual Machine in the Java programming language. Technical B.eport SMLI TR-98-64, Sun Microsystems, March 1998. Google ScholarDigital Library
Index Terms
- Implementing jalapeño in Java
Recommendations
Implementing jalapeño in Java
OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsJalapeño is a virtual machine for Java™ servers written in Java.
A running Java program involves four layers of functionality: the user code, the virtual-machine, the operating system, and the hardware. By drawing the Java / non-Java boundary below the ...
Implementing JNI in java for jalapeño
JVM'01: Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1Developed at the IBM T. J. Watson Research Center, Jalapeño [1] is a Java virtual machine (JVM) written in Java that targets high-performance servers. The strategic decision early in the project to implement Jalapeño in Java [2] leads to many important ...
Comments