Recent blog entries for jserv

Cacao VM running on OpenMoko

The FIC guys gave me one handset of GTA01 (OpenMoko/Neo1973 machine) last month, and it brings a lot of joy and fun for hacking to me.

First, system emulator for OpenMoko based on qemu is really exciting, and I prepared a working Win32 version of openmoko emulator some days ago (look up the wiki for details). Then, back to Free Java world, I met several hackers around the world in #kaffe, #classpath, and #cacao IRC channel. Since I had portd Kaffe to Xscale-based mobile phones, I decide to take Cacao for a try.

After some slight modifications (with the help from twisti), Cacao works on OpenMoko GTA01, and here is the output for typical "Hello World" application in Java:

root@fic-gta01:/var/tmp$ cd /tmp/cacao 
root@fic-gta01:/var/tmp/cacao$ ls *.class
fp.class     hello.class
root@fic-gta01:/var/tmp/cacao$ cd bin 
root@fic-gta01:/var/tmp/cacao/bin$ ./cacao -cp .. hello
Hello world
root@fic-gta01:/var/tmp/cacao/bin$ uname -a
Linux fic-gta01 #1 PREEMPT Sat Apr 14
07:40:05 UTC 2007 armv4tl unknown
It is based on Cacao SVN (along with GPL'd ARM jit engine) + GNU Classpath version 0.95. However, I still manage to let gtk-peer work on Cacao inside GTA01 device. But I am of the opinion that it is really a good start point for joint of the power from Free Java (GNU Classpath, Cacao, Kaffe, etc.), OpenMoko, and Embedded Linux.

Also, I met guillaum1 in #cacao, who is the developer of MIDPath, and he suggested me to try the combination of cacao-cldc (cacao without GNU Classpath) + MIDPath. The design of MIDPath is very flexible, and it allows to have MIDP2 working on top of cacao-cldc (without Classpath) or standard cacao (i.e with Classpath). I will do that later.

In addition, some friends in Taiwan and I set up a new laboratory, named "Open RazzmatazZ Laboratory" (OrzLab), which funds an environment for freedom and creativity based on Free Software and Open Source efforts. We are looking for some improvements for OpenMoko, such as CJK (Chinese, Japanese, and Korean) text processing and input methods, Java VM integrations, etc. I do really enjoy the fun of hacking!

6 Feb 2006 (updated 6 Feb 2006 at 03:34 UTC) »
Ten Anniversary of Kaffe Project

In Feb 6 1996, Tim Wilkinson released the first version of Kaffe as version 0.1, which is the first independent free and open source implementation of Java Virtual Machine. See the ChangeLog here:
    Tue Feb  6 11:38:46 MET 1996    Tim Wilkinson   <>

    * Version 0.1 of Kaffe released.

    The brave action inspires many developers around the world, and various research projects and commercial products were constructing on the basis of Kaffe, and we could find some Kaffe-related projects in Links. Now, after ten years, there are many and many free Java runtimes and "clones". It's really amazing that GNU Classpath, GCJ, Kaffe, etc. are going better and better, more and more robust, and still free and open. :-)

    Happy Birthday to Kaffe!

Kaffe in Commercial Embedded System Product

I am looking up some commercial vendors for embedded system solutions dedicated to Linux-based realtime support today. There is one company, SYSGO AG, claiming that it is the leading software provider for Embedded Systems in Europe. After consulting the FAQs of ELinOS, I found the following interesting items:

  • Interesting facts about the use of Java on embedded Linux
      The commercial SUN Java 1.3 JDK requires about 30 MB in the file system and another 16-22 MB RAM for graphics applications. When graphic versions are integrated (e.g. Swing), the required classes add up to enormous volumes that are often too large for an embedded system.

      There are alternatives, but they usually have similar memory requirements when used with graphic versions. If it is possible to use access alternative graphic libraries instead of JAVA (e.g. QT/GTK...), a similar application can be handled with less than 4 MB.

      ELinOS offers Kaffe and Kaffe for QT as a Java environment in the DevelopmentKit.

  • Is there Java support for embedded systems? (VMs, versions etc.)
      ELinOS v3.0 comes with the Kaffe free Java VM for X86, PPC, ARM and Jikes. If requested, KVM or any other JVMs are possible.
So that, we can see that recent release of KaffeVM (with Qt/Embedded AWT backend) was shipped in industrial embedded system products, such as SYSGO AG's ELinOS. Interesting :-)
27 Sep 2005 (updated 27 Sep 2005 at 02:39 UTC) »

Play with GCJX

I just saw Ranjit Mathew's diary, Miscellany, and the status of GCJ attracts me, so that I decided to take a try with GCJx. I wrote a small build script, which can automatically check out from CVS, build GCJX, and show you if it's completed or not.

GCJX worked very well with my test cases, and I even modified kaffe/libraries/javalib/ to drive GCJX generating bytecode for Kaffe's API implementations. It seems to work, but I think I should take a look over the existing build process, according to kaffe/library/javalib/

    # Note: is generated from using 
    # developers/update-class-list (called from developers/
    # Yes, it's slightly insane:
    # -> -> -> Makefile
    Also, I found the kaffeawt building fault of Nano-X AWT backend. It would be better to introduce new rules for generating the separate jarball.

    Ooops, I have to say again, GCJX rocks. Kudos to Tom Tromey!

After following [KDE Contributor and Developer Conference], I found the topic [There is a K in microkernel - Qt/embedded port to L4], and I thought that's amazing to me although I can't attend the session due to physical distance. Recently, [the L4 guys] ported Qt to L4/DROPS, and they are finally about to present their great work in KDE aKademy.

As I recall, Alexander Boettcher told me the progress of Qt and Kaffe porting to L4 in mailing-list. Refer to [problem using QtAWT with 1.1.5 (Gnu Linux/i686)]. I am really excited that it works even better now. Later, I would like to put the sexy screenshots in's collection [Screen Shots - Kaffe's Qt AWT backend], and, of course, I am willing to see the L4 porting efforts are going to be merged in cvs repository, too.

Exciting L4 !

20 Aug 2005 (updated 20 Aug 2005 at 05:12 UTC) »

I attended JavaTwo, the Java Developer Conference by Sun Microsystems Taiwan in Aug 17 and 18. I met two Sun guys, Matt Thompson and Rima Patel, whose talks were very impressive. Also, I participated in various sesssions, including Design Patterns in Java Library (speaker: jjhou), J2EE Anti-Patterns, New Advances of XML and Web Services 2005, and BeanShell interpreter.

In the meanwhile, In JavaTwo, I presented Free Java Runtimes dedicated to overview of recent great works around Free Java Hackers, and the slides are available here (PDF document). Of course, my slides are written in Traditional Chinese, so that only some developers could understand, but I wish that's still useful.

I am glad to see that some developers took their interest to attend my session, and gave me some feedback. They thought my demo for recent KMM (Kaffe Multimedia Project) and KOE (Kaffe-based Operating Environment) were cool enough as an exciting impression how Free Java Runtimes could be. :-)

However, I am still hacking Kaffe VM for better integration between lightweight AWT implementations and MHP software stack, and I do hope to release some snapshots this year.

24 Apr 2004 (updated 24 Apr 2004 at 15:46 UTC) »
Kaffe OpenVM
Recently, I wrote an article encoded in Big5 about Open Source JavaVM development in Traditional Chinese. In fact, the article is never completed since everything changes so fast. I am willing to share this to others interested in getting involved with Open Source JavaVM, especially for people using Chinese.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!