Further investigation showed that Java SE was, at the time, a key software platform for Web 2.0. Even today several popular browser plug-ins are written in Java such as Facebook’s photo uploader and some of Yahoo’s online games.
Luckily, Java SE was no longer a proprietary technology and had been set free by Sun as the Open Java Development Kit (OpenJDK) under GNU Public License (GPL). This meant that we were no longer reliant on one company to make Java available on ARM but could work with the open source community to make it happen.
Picture from the blog of James Gosling "father of the Java Programming Language". Sun may be no more but like Linux, Java SE lives on and is free as OpenJDK.
As it turned out, by early summer 2008 members of the open source community at RedHat were already hard at work porting OpenJDK to ARM. This port used the highly portable Zero Java byte-code interpreter. By mid-July the initial ARM port had been completed and was scheduled to be available in the upcoming Debian 5.0 “Lenny” distribution. This was exceedingly good news since Debian forms the basis of almost all of the key Linux distributions including Xandros and Ubuntu, and by late summer Matthias Klose of Canonical (who create the Ubuntu distribution) was building and testing OpenJDK on ARM for the future “Jaunty” release of Ubuntu on ARM.
Job done? Not quite! Having a full free Java SE platform in the upcoming release of Debian and its derivative distros was great, but it ran really, really SLOW! The Zero Interpreter got its name because it is a zero processor architecture specific implementation- no optimizations for the processor, no fast assembly language loops and no JIT! In summary, the Zero interpreter contains nothing that in anyway detracts from its high degree of portability (which was why OpenJDK moved onto the ARM so fast). So, while we had a full Java SE platform on ARM, we didn’t really have a practical platform for running real Java applications like ThinkFree Office.
The next thing I did was fly to Cambridge, England and go down the pub with a couple of my mates- Andrew Haley who is the Technical Lead for Open Source Java at Redhat and Edward Nevill who is an expert at writing Interpreters and JITs as well being one of the designers of the Thumb instruction set. After of couple of pints we hatched a plan: OpenJDK on ARM still needed a little work to get it building for the Jaunty release of Ubuntu that was scheduled for April 2009. However the real question was could we make it go fast? Back then the Open Source JITs that targeted ARM weren’t quite ready for prime time so it looked like the best shot at getting performance up was for Ed to rewrite the Zero interpreter loop in ARM assembler.
Rod, Ed and Andrew's historic offsite meeting on the future of free Java
This photo © 2008 Sarah Woodall
To be continued...
Rod Crawford, Principal Software Engineer, ARM, working in the area of mobile Web technologies. During his 10+ years with the company he has spearheaded many embedded software initiatives including the creation of ARM's first commercial software toolkit, OS optimization for ARM, high performance implementation of Java on ARM, and even an ARM Web portal and Blog for developers. Prior to ARM, Rod has spent extensive time in the embedded software industry developing software tools for the 8 and 16bit microcontroller market and creating extensive ISV communities.
Shortlink to this post: http://bit.ly/afnsvd
2 Comments On This Entry
Please log in above to add a comment or register for an account
Search My Blog
Coding Using NEON Technology
on Today, 08:57 AM
on May 08 2013 06:15 PM
New Platform Bring-Up with ARM® Development Studio 5 (DS-5™)
on Apr 30 2013 09:55 AM
如何利用全志安卓4.0 HDMI Dongle进行ARM DS-5 Streamline性能分析
on Apr 26 2013 10:50 AM
DS-5 Streamline Performance Analyzer on Allwinner Android 4.0 HDMI Dongle
on Apr 25 2013 04:58 PM