Java environments for Linux on POWER architecture
In this article, Linux on POWER refers to the coupling of multiple distributions of the Linux operating system with POWER and PowerPC (abbreviated as PPC) processors, which are IBM's family of general-purpose and embedded processors tied together under the collective term Power Architecture™. The Power Architecture is pervasive as the core to a broad spectrum of devices, including:
- Cell phones and palmtops
- Game consoles
- Desktops, workstations, and servers from IBM and other vendors
- Large IBM SMP servers
- The world's fastest supercomputers
There are many Linux on POWER distributions, such as Yellow Dog Linux, Y-HPC, Debian, Mandrake, and many others, that run on Power Architecture hardware made by IBM, as well as other manufacturers. For a comprehensive list, see penguinppc.org. (See Related topics.)
This article refers primarily to the two mainstream enterprise-level Linux on POWER distributions running on IBM Power Architecture hardware:
- Red Hat Enterprise Linux
- SUSE LINUX Enterprise Server
SLES 8 and RHEL AS 3 release prior to Update 3 are not supported on POWER5 technology-based hardware, including eServer OpenPower. The Linux distributions supported on POWER5 and OpenPower are SLES 9 and RHEL AS 3 Update 3.
Future Java II platform Java environments
- Java 2 Standard Edition version 5.0
- The next major release of the IBM Developer Kits for Linux on POWER is Java 2 Standard Edition, Version 5.0, that was previously called 1.5.0.
At this time, IBM offers Beta version of JDK and JRE 5.0 for Linux on POWER in both 32-bit as well as 64-bit. Please see the link for IBM Developer Kits provided in the Related topics section.
There is also work under way to produce JDK 5.0 for PPC architecture from Blackdown Development Group. (See Related topics.)
Currently supported Java II platform Java environments
- JDK and JRE 1.4.2
- Are available from IBM in both 32-bit and 64-bit address space versions for Linux on POWER. Customers, especially those using SLES 9 and RHEL AS 3 Update 3, are highly encouraged to move to the latest level of JDK/JRE 1.4.2. See NPTL vs Linux threads for information about JVM 1.4.2 compatibility with particular Linux releases.
JDKs and JREs 1.4.1 and 1.4.2 do not ship debug versions of libraries and executables. They can be requested, if necessary, when you open a service request with IBM Service and Support.
Currently there is no Java plug-in available with JDK 1.4.2 for any of the browsers running on Linux on POWER, such as Mozilla.
Java Communications application programming interface (JAVACOMM API) is also being provided along with JDK 1.4.2 to allow access to serial or parallel ports from Java programs.
- JDK and JRE 1.3.1
- For Linux on POWER are available from IBM in 32-bit versions. JDK 1.3.1 is shipped along with the Java Authentication and Authorization Service (JAAS) package and the JAVACOMM API package.
Currently there is no Java plug-in available with JDK 1.3.1 for any of the browsers running on Linux on POWER, such as Mozilla.
32-bit Blackdown JDK 1.3.1 is also available from Blackdown Development Group. This is a direct reference port of Sun JDK 1.3.1 under the Sun Community Source License (CSL). It does not include Sun JDK 1.3.1 HotSpot technology or JIT technology. Its garbage collector (GC) is conservative, and it uses native threads. It is available in the form of a JRE, as well as J(S)DK on SLES 8 with RPM packages named java2-jre-1.3.1-30 and java2-1.3.1-30, respectively.
Deprecated Java II platform Java environments
- JDK and JRE 1.4.1
- Because JDK/JRE 1.4.2 is an in-service replacement of the JDK/JRE 1.4.1, JDK and JRE 1.4.1 are no longer supported. Customers are encouraged to move to the move to the latest Service Refresh level for the JDK 1.4.2, which is fully supported and has support for the most recent Linux for POWER distributions for POWER5 microprocessor-based hardware, such as SLES 9 and RHEL AS 3 Update 3.
NPTL versus Linux threads
RHEL 3 and SLES 9 provide a new threading technology called Native POSIX Threads Library (NPTL). This threading library is different from the library supported in previous Linux distributions known as "LinuxThreads." IBM Java 64-bit SDKs and JREs starting with 1.4.1 SR 2 do not support LinuxThreads operation. These should be operated with NPTL, which is the default. See Table 1 below, which shows whether a particular version of 64-bit JVM is compatible with a particular Linux for POWER distribution. This is relevant only to 64-bit JVMs 1.4.1 SR2 and up. 32-bit versions of 1.4.x will run on all supported Linux on POWER distributions, NPTL, or LinuxThreads.
Table 1. Compatibility of 64-bit IBM JVMs with Linux on POWER
|Linux on Power||glibc||1.4.1 GA(deprecated)||1.4.1 SR 1(deprecated)||1.4.1 SR 2(deprecated)||1.4.2|
|RHEL AS 3||2.3.2||No||No||Yes||Yes|
There is also the option of running 32-bit JVMs with the original LinuxThreads library by setting the environment variable LD_ASSUME_KERNEL to 2.4.10. Setting LD_ASSUME_KERNEL to 2.4.10 may prevent 64-bit JVM from starting.
Java I platform and open source JVM implementations
There are multiple open source JVM projects available on the Web, which are loosely defined as JVM 1.1.x or 1.2.x. This means that their compliance to any of Sun Java I Platform JVMs (such as 1.1.4, 1.1.6, 1.1.7, and 1.1.8) or Java II Platform JVM 1.2.2 specifications is unclear. Some of them are JVMs for embedded devices, but could be used standalone. The only one readily available for Linux on POWER is Kaffe.
Kaffe is probably the oldest of all open source JVM projects. It is cleanroom implementation of JVM, which means no Sun proprietary JVM source code contamination. Until recently, it did not have JIT. Traditionally, Kaffe was shipped on most Linux distributions with Jikes -- an open source Java compiler implementation from IBM. SLES 7.3 used to ship kaffe-1.0.6-63.ppc.rpm, however it is no longer shipped with SLES 8 distribution, though Jikes is. Kaffe RPM from SLES 7.3 distribution media,- kaffe-1.0.6-63.ppc.rpm, can be installed on SLES 8 and works.
It is preferred for the Java source code to be compiled with the Javac compiler that is included with Kaffe distribution, though according to documentation it should also run bytecode produced by the Jikes compiler.
There are other open source JVM implementations available, most of which are cleanroom implementations. Their classification in terms of any particular Sun JVM specification is largely undefined. Their portability to Linux on POWER and usefulness for production purposes should be verified on a case-by-case basis.
One open source JVM implementation from IBM is Jikes Research Virtual Machine (Jikes RVM). It can be installed on Linux on POWER/PPC. It is, for the most part, an experimental JVM and should be tested to see if it can live up to production quality standards in a particular production environment.
Linux on POWER distributions offer a variety of Java development and run time environments. At the time of this writing, customers are encouraged to use the latest Service Refresh of the latest available version of the JVM for Linux on POWER from IBM, 1.4.2, with Java 2 SE 5.0 coming to replace it shortly.
- Instruction Set Architecture
- Java Development Kit. Superset of JRE. Includes JRE and development tools such as compiler, debugger, and others.
- Just-In-Time Compiler that converts Java bytecode into the native machine code of the host architecture.
- Same as JITC
- Java Software Development Kit. Abbreviation used interchangeably with SDK and JDK.
- Java Run-Time Environment. Subset of JDK. Does not include development tools. Provides JVM to run Java bytecode compiled elsewhere.
- Java Virtual Machine
- Native POSIX Threads Library. NPTL brings enterprise-class threading support to Linux, far surpassing the performance offered by LinuxThreads. It is based on 1:1 ratio between user and kernel threads.
- IBM POWER5 microprocessor-based system tuned for Linux
- Name of the common chip architecture for IBM pSeries and iSeries servers
- The latest currently available POWER chip. Like the POWER3 and POWER4, the POWER5 technology unifies the POWER and PowerPC architectures. It features communications acceleration, chip multiprocessing, and simultaneous multithreading (SMT).
- The POWER4 architecture has superior performance across a broad range of commercial and high performance computing environments. POWER4- based iSeries and pSeries servers support dynamic logical partitioning.
- Also known as POWER4-II. Upgrade of POWER4 working at higher frequencies and with less power consumption.
- One of the currently available POWER chips available for entry-level pSeries servers
- Hardware architecture derived from POWER
- Abbreviation of PowerPC
- Red Hat Enterprise Linux
- Reduced Instructions Set Computer
- Software Development Kit. Abbreviation used interchangeably with JDK and JSDK.
- SUSE Linux Enterprise Server
- Service Refresh
- IBM UNIX-based servers that run AIX and/or Linux on IBM POWER- based hardware
- IBM's integrated servers based on POWER architecture
- New IBM integrated server systems based on the new POWER5 microprocessor
- New IBM UNIX-based servers for AIX and/or Linux on the new IBM hardware, based on the new POWER5 microprocessor
- IBM developer kit for Linux: A development kit and runtime environment that contains IBM's just-in-time compiler, enhanced with a unique Mixed Mode Interpreter and a re-engineered Java 2 virtual machine.
- IBM developer kits: Diagnosis documentation: Find guides that cover IBM-specific features of IBM's offerings.
- penguinppc.org: Home of the linux/ppc port. Read about Linux on POWER and PPC.
- Blackdown Development Group: Find information on the Blackdown Java 2 versions and other Java APIs.
- Linux on Power Architecture Developer's Corner: Learn more about Linux on Power. Find technical documentation, education, downloads, product information, and more.
- Read about IBM POWER architecture history of development and implementations. (Wikipedia.org)
- Learn more about the History of the PowerPC, design features, and more. (Wikipedia.org)