Tracks:GNU Classpath -- Core Classes for a Diversity of Free Java Virtual
Sascha Brawer and Mark Wielaard
The goal of GNU Classpath is to provide an implementation of the core class libraries for the Java language that is not under proprietary control. Because the license grants developers, users and researchers the freedom to adapt it to their purposes, GNU Classpath has become a catalyst for innovative VM and compiler projects.
Due to the richness of the library, GNU Classpath is a very large and ambitious project. This very richness means that Free Software developers can use a reasonably well designed, object-oriented framework that covers most needs of a typical application. The support ranges from abstract data types to graphical user interfaces, from low-level network abstractions to remote method invocation with over-the-network class loading, from mathematical libraries to database access. Because the Java framework is accepted by the mainstream, many developers are already familiar with its structure. This means that people can quickly write free software while relying on a stable, tightly integrated foundation.
GNU Classpath is used by several Virtual Machines. Therefore, the library must support execution environments with rather diverse, sometimes even conflicting design goals. Examples include the GNU Compiler for Java (GCJ), which is an ahead-of-time compiler, producing object files conformant to the binary interface of C++; the IBM Jikes Research VM (RVM), which is completely written in Java; IKVM.NET, which translates Java bytecodes to the .NET Intermediate Language and works on top of Mono; Jaos, which builds on top of the Aos/Bluebottle kernel and implements all low-level methods in Active Oberon; and Kaffe OpenVM, a traditional byte-code interpreter and just in time compiler available on lots of platforms. We show the techniques that GNU Classpath uses to cope with the needs of multiple, very different VMs.
Since a group of dedicated people has worked on GNU Classpath over the course of five years, it is now possible to develop and run large Java programs in an entirely free environment. A live demonstration of Eclipse, a large desktop, and Tomcat, a large server application, will illustrate that serious applications can now be developed on top of the framework. Nonetheless, we want to extend the core libraries with even more standard classes, so a lot of work still remains to be done. The talk concludes by showing how people can contribute to GNU Classpath, and in which areas help would be most appreciated.
About the speakers:
Sascha Brawer has studied Computational Linguistics, working on optimizing compilation methods for natural language processing. He has worked as a software developer and in industrial research before founding Dandelis, a company that develops free software. He lives in Berne, Switzerland.
Mark Wielaard studied Theoretical Computer Science at the University of Amsterdam, working on functional and logic programming languages. In the past he has worked on GNUJSP and servlet libraries and currently helps with the gcj and kaffe projects. In 2000 he joined GNU Classpath and he now is the GNU maintainer of that project.
SableVM - the Apache of Java Virtual Machines
Grzegorz B. Prokopski
Recommended background: basic knowledge of Java and C. SableVM is a robust and efficient Free (LGPL) Java Virtual Machine. SableVM has been designed from ground up as a *complete* Java Virtual Machine, with number of other robustness and maintainability features, and with long desired lifetime. Paired with high qualifications of the initial author it resulted ex. in unmatched portability and owerwhelming code cleanness. Performance of SableVM's highly portable interpreter (written in plain C) comparable with handwritten assembly-using, hardly-portable interpreters. SableVM will also soon feature SableJIT - an easily-retargettable Just In Time compiler. On the Free Software side - Project's priorities and features are exactly what one would love to be the case: the codebase is absolutely clean, we're able and willing to offer repository write access to every contributor, we release all our code under very permissive license (LGPL), we're of course glad to help any new contributor grasp our code quickly (which isn't anywhere near "hard"), we perceive close collaboration with other Free Software projects (like GNU Classpath) as high-priority, we also have all possible helpful project infrastructure one could imagine. The SableVM codebase has many interesting features and implements many advanced techniques. These features and techniques are often very unique, or they just make your life (as user or developer) much easier: m4 macros one can use without m4 knowlege while preserving C syntax (and thus ex. highlighting), inlined engine (a compiler w/o a compiler one could say), portable JIT, moving garbage collector ability (yes, with JNI!), close integration with current GNU Classpath versions, Java Invocation Interface, ... It is simply impossible to deeply explain all of them during an hour, but the most interesting technical solutions will be the kernel of this presentation. For more informations see:
fbAWT - Direct to your buffer
Java Abstract Window Toolkit (AWT) implementations usually delegate GUI rendering and base functionality to sets of platform dependent native peers. Generally, these peers map to platform widget toolkits such as SWT, Qt, Gtk and Motif. For embedded devices these native toolkits use valuable storage and runtime space that could perhaps best be used in other ways. fbAWT is a Java AWT Toolkit which implements all base functionality directly in Java and delegates only base IO to the operating system using file or network IO to a framebuffer. fbAWT is pluggable and is currently capable of using the linux framebuffer as well as a VNC server backend. Work is underway to extend the pluggability to font rendering and rasterising, enabling developers to revert to native code for speed-critical functionality.
About the speaker:
Stephane Meslin-Weber has been a Java developer for the past 4 years, working mainly in J2SE and more recently Java 1.1 application and applet-based positions for desktop development. His interest in embedded Java started 2 years ago with the purchase of a Sharp Zaurus and the bundled Jeode JVM. He has since then been working on fbAWT and QtEAWT to enable embedded developers to break free from the needs of additional software and library dependencies when developing kiosk-type
applications for PDA use; hopefully using Open Source Java Virtual Machines!
Packaging Free Java Applications For Free Operating Systems
Dalibor Topic and Arnaud Vandyck
- Target audience
Java application developers, free operating systems users and packagers.
In this talk, we'll give an overview on the state of the art of packaging free applications written in the Java programming language on free operating systems. We'll also give an outlook into future directions, and evaluate opportunities for cooperation between the various efforts.
Free operating systems have found different ways to intergrate free applications written in the java programming language with java runtimes. As free runtimes for java applications start to become suitable for a wider range of applications, there is an increased demand to have free java applications packaged in ways that make it easy to run them on free runtimes. Some of this demand is driven by the desire to liberate free java applications from a dependency on non-free software, while some of it is driven by practical advantages of free runtimes over the non-free alternatives.
We'll look into goals of different packaging projects like Debian, Gentoo, RHUG/Naoko and JPackage, explain the motivation behind them andthe methods they developed. We'll also look at the problems they face, and show their achievements.
Finally, we'll cast some light on efforts to encourage cooperation between the various packaging efforts, and examine what opportunites for collaboration between the various projects exist.
Dalibor Topic and Arnaud Vandyck
|© FOSDEM 2003-2004 - powered by Argon7|