Kaffe.org

Links

Here are some links related to Kaffe, Java, and other things. If you have any links that you feel should be on this page, send them to jim@kaffe.org. Please report any dead links.

We are going to try to merge as much as we can into the kaffe tree. I'd also like to collect a lot of stuff and archive it on our ftp site under /pub/packages

Categories

Directory Sites

Kaffe-based JVMs

  • Latte

    An open source JVM based on Kaffe.

  • JanosVM

    Current Utah work on multi-process JVMs.

  • KaffeOS

    KaffeOS is a Java virtual machine that allows the execution of multiple process within Kaffe. It separates the resource consumed by those processes, allows them to be safely terminated, and provides for direct sharing between processes.

    Patrick Tullman says:

    (Kaffe Core Team member Godmar Back's Ph.D. thesis) Source isn't available yet, but I think that's just because Godmar is decompressing after finishing his thesis.

  • The JESSICA Project

    Project JESSICA (Java Enabled Single-System-Image Computing Architecture) and the new JESSICA2 project are all based on Kaffe to create a distributed JVM for running multithreaded Java applications on PC clusters.

  • Gilgul

    • Gilgul is a compatible extension of Java.
    • It introduces a new view on the concept of object-identity.
    • It allows for dynamic object replacement by simultaneously rerouting a set of references as an atomic operation.
    • It thus provides means for unanticipated software evolution
  • Alta

    The Alta Virtual Machine is a Java-compatible Virtual Machine designed to provide nested process services to Java applications. Alta is based on Kaffe.

  • Guaranį

    Guaranį is a reflective architecture that aims at simplicity, flexibility, security and reuse of meta-level code. It uses Kaffe as its base. Guarana is available for download under the GPL.

  • kangaroo

    kangaroo is a J2ME/CLDC alike Virtual Machine.

Free Software JVMs

  • Red Hat Sourceware Project for the Java Language (gcj).

    Red Hat (who bought Cygnus) is developing a complete free software toolkit for developing in the Java Language. gcj is part of the egcs project and provide as Java front-end and a set of run-time libraries to egcs. Also includes the gij interpreter.

  • jRate

    An extension of the GNU GCJ compiler front-end and runtime system which adds support for most of the features required by the Real-Time Specification for Java (RTSJ).

  • ORP (Open Runtime Platform)

    From Intel.

  • Jikes Research Virtual Machine (RVM)

    A free, self-hosting virtual machine (written in Java!)

  • JC

    A virtual machine written in Java that converts Java bytecode to C before running it. (from Kaffe project alumni Archie Cobbs)

  • Japhar

    Japhar is the Hungry Programmers' Java VM. It has been built from the ground up without consulting Sun's sources. Japhar is LGPLed and available for download.

  • ElectricalFire

    ElectricalFire is an open source project that came from a cancelled commercial project at Netscape and is now sponsored by Netscape under the Mozilla umbrella.

    ElectricalFire is a Java Virtual Machine that uses JIT (Just In Time) compilation techniques to accelerate Java code execution. ElectricalFire was designed from the start to generate high-performance machine code and to be portable to many different processor architectures.

  • Waba

    A small JVM aimed at portable devices.

    Also, Wabasoft, and SuperWaba.

  • joeq Virtual Machine

  • kissme Virtual Machine

  • SableVM

  • Wonka

    A cleanroom Virtual Machine for the Java(tm) language, originally developed by telematics specialists ACUNIA .It is extremely portable and self-contained, and can optionally be used with its own real-time executive (OSwald(tm)) to provide a complete solution for embedded devices.

    Also, the chief arhitect of WonkaVM, Chris Gray, funds a company to provide embedded java solutions named as Mi|k|a(TM).

  • JamVM

  • Jupiter

  • IKVM

    A Java Virtual Machine for .Net!.

  • Java Pathfinder

    A runtime Java program verification / model checker tool from NASA that is actually a state matching, backtracking JVM that is a model checker that is written in and runs on top of Java! It can (with Kaffe project alumni Peter Mehlitz)

  • Aegis VM

    The Aegis VM Projects is an on-going effort to develop a lightweight, secure virtual machine for executing Java bytecode. The VM is intended to be an extension framework for applications or devices that dynamically load and execute untrusted extensions.

  • JAOS (Java on Active Object System)

    A Java virtual machine for the AOS system and a case study in interoperability between the Oberon and Java languages.

  • CACAO

    A research Java Virtual Machine developed at the Vienna University of Technology and released under the GPL. The VM uses a compile-only approach, which means there is no interpreter available. The optimizing JIT compiler is available for a number of architectures.

  • Ovm Project

    An open source framework for building programming language runtime systems. Ovm is a DARPA funded collaborative effort between Purdue University, SUNY Oswego, University of Maryland, and DLTech. The current emphasis for Ovm is to produce a Java VM compliant with the Real-Time Specification for Java.

  • Mysaifu JVM

    A Java VM which runs on Windows Mobile 2003 software for Pocket PC (Pocket PC 2003) licensed under the GPLv2 (GNU Public License Version 2).

  • DynamicJava

    A Java source interpreter, written in Java.

  • Ghost Machine

    For the Palm.

  • JNode

    A LGPL JVM and operating system written in Java, with a JIT-like native code compiler and bytecode interpreter. No C code - just Java and assembly!

  • JX-OS

    A GPL'd system architecture consists of a set of Java components executing on the JX core that is responsible for system initialization, CPU context switching and low-level domain management. The Java code is organized in components which are loaded into domains, verified, and translated to native code.

  • JAmiga

    A GPL'd JVM for the Amiga.

  • Kabavm System

    A tiny Java Runtime targeted in small hardware devices. See Japanese webpage for details.

  • NanoVM

    A tiny java virtual machine for the Atmel AVR ATmega8 CPU, the member of the AVR CPU family used e.g. in the DLR Asuro robot.

  • Hormony (wiki)

    Apache Foundation's effort to create a new cleanroom J2SE-compatible environment, and Geir Magnusson Jr. wrote a proposal and this wiki page for details.

Add-on JITs

  • ShuJIT

    ShuJIT is a free JIT compiler for Sun's JVM. Is it available for download.

  • TYA

    TYA is a free JIT compiler for Sun's JVM. (No longer being worked on)

  • OpenJIT

Ports of Kaffe

Ports of Sun's JDK

  • Sun Microsystems - java.sun.com

    Where Java comes from in the first place. They also have a list of official ports.

  • Java for FreeBSD

    This is an unsupported version of Sun's Java Development Kit ported to FreeBSD. It is being tested for any problems that might exist. No known significant bugs exist at this time, but there are no guarantees of usability.

  • Blackdown JDK for Linux

    The Blackdown JDK is a port of Sun's Java Developer's Toolkit to Linux.

Java Compilers

  • Jikes

    A free, fast replacement for javac. Not written in Java itself.

  • Toba

    A Java-to-C Translator. No longer maintained or supported.

  • Harissa

    A Java-to-C compiler and a Java interpreter (GPL'd).

  • Timber

    A parallelizing static compiler for a superset of Java (for parallel and distributed systems). Uses Kaffe class libraries.

  • Jacks (Jacks is an Automated Compiler Killing Suite)

    From the Jikes people at IBM. Not really a compiler, but a test suite to detect bugs in Java compilers.

  • Index: Programming Languages for the Java Virtual Machine

    A huge list of non-Java languages that run on the Java virtual machine.

Free Java Tools

  • Jasmin

    A Java assembler.

  • Soot

    A Java optimization framework, which can be used as a standalone tool to optimize or inspect class files (using different intermediate representations), or it can can be used as a framework to develop optimizations and transformations on Java bytecode.

  • Jakarta BCEL (Byte Code Engineering Library)

    The Byte Code Engineering Library (formerly known as JavaClass) is intended to give users a convenient possibility to analyze, create, and manipulate (binary) Java class files (those ending with .class).

  • Jode

    A decompiler and optimizer for Java.

  • JSlice

    JSlice is dynamic slicing tool for Java programs. It collects and analyzes an execution trace (for slicing) in a compressed form, at the level of bytecode. The tool is a research project in National University of Singapore, and is based on Kaffe.

Free Software Java Libraries

  • GNU Classpath

    GNU Classpath is the FSF's effort to implement free class libraries.

    GNU Classpath is a set of essential libraries for supporting the Java language. Its goal is to provide a free replacement for Sun's proprietary class libraries so that the GNU system can run programs written in the Java language. GNU classpath is LGPLed.

  • ImageLoader Library

    LGPL'd library which reimplements Java's image handling routines.

  • Java-Gnome

  • Gnome-GCJ

    Bindings for GTK+ and Gnome in Java/GCJ (using CNI).

  • mod_gcj

    Serve dynamic pages from Apache using libgcj, the free Javatm implementation that is part of GCC.

  • QtAWT

    TrollTech makes offers a "Qt AWT" as part of their Qt Embedded suite too. It may be different than this QtAWT.

  • JSDL (Java for SDL)

  • KaRMI

    An open source RMI implementation.

  • jUSB: Java USB

    A free Java API for USB.

  • XWT

    The XML Windowing Toolkit, a toolkit to create client/server user interfaces, where the user interface run on the client end is a mix of XML-based UI plus JavaScript.

  • Prevayler

    Klaus Wuestefeld writes:

    "Orders of magnitude FASTER and much SIMPLER than a DBMS. Write PLAIN JAVA classes: no pre or post- processing required; runs on any VM; no inheritance from base-class required. Clear documentation and demo included."

Other Virtual Machines and Emulators

  • Mono

    An open source version of Microsoft .Net, including a CLR implementation (very similar technology to what's found in a JVM).

  • Parrot VM

    A VM designed for Perl6. Here's the FAQ.

  • Bochs

    A cross-platform Pentium emulator.

  • Plex86 (newer, lightweight project)

    A lightweight VM for running Linux on x86 systems (similar in nature to User Mode Linux, but closer to emulating hardware). By Kevin Lawton, creator of Bochs.

  • Old Plex86 (older fork)

    The original Plex86 project, started by Kevin Lawton, was intended to be a free VMWare replacement, which involves using dynamic translation techniques (aka. a JIT) to handle "edge cases" involving priviledged x86 instructions that cannot be virtualized using normal x86 hardware. Kevin abandoned that approach, and started a new fork, but the old codebase still exists on GNU Savannah.

  • QEMU

    QEMU is a FAST! processor emulator. By using dynamic translation (a JIT) it achieves a reasonnable speed while being easy to port on new host CPUs. Currently, it can run Linux/x86 binaries on Linux/PowerPC, but work is underway to emulate ARM, and other processors.

  • Valgrind

    Valgrind is a x86-to-x86 JIT that allows users to dynamically add "skins" to x86 binaries. Currently, skins exist that instrument binaries for memory debugging and cache analysis.

  • a386

    a386 is a C programming library which provides a virtual machine. The virtual machine is an abstraction of an Intel 386 running in protected mode. Functions in the library corresponds to privileged processor instructions and access to hardware. The intended use for the library is to serve as a minimal hardware abstraction layer for operating system research.

  • Wine

  • DOSEMU

  • User Mode Linux

  • MAME

  • MESS

    Emulators for lots of machines, including some really early ones.

  • Mac On Linux

Miscellaneous, Unsorted Links

Graveyard (Dead Links)

Here are some dead links. Perhaps they can be resurrected.

  • Briki (Dead link: 3/16/02)

    Briki is a now defunct research project to implement an optimizing JIT, which was based on Kaffe.



Legal:

Kaffe.org is a an independent, free software community project.

The Kaffe virtual machine is a clean room implementation of the Java Virtual Machine from Sun Microsystems, Inc.

The Kaffe virtual machine is free software, licensed under the terms of the GNU General Public License.

Java is a Trademark of Sun Microsystems, Inc.

All copyrights are held by their respective owners, please read and respect the individual licenses on the software distributed from this site.