Java 1.6 Download Mac Powerbook G4

A few months ago, when doing some photo editing, I noticed that my 1-year-old PowerBook G4 1.67 was a bit sluggish. So I had a look at the available RAM on the machine and sure enough the maximum RAM reported was 512MB, rather than the 1GB that I had installed. I had a look at the memory slots in the System Profiler and one of the memory banks indicated that it was empty.

The availability and specifications of Java environments bundled with Linux distributions that run on Apple PowerPC hardware, such as G3, G4, and G5 processors, vary significantly. Some do not provide any JDK or JRE at all, and some provide a JRE only. I have a PowerBook G4 15' 1.5 GHz Alumminium. I need to re-install the Mac OS X Leopard on it, but i don't have it. Is it possible that there are different versions of this OS and some don't work on my PPC mac? If i get one, can i connect my PowerBook by firewire to a macbook pro and install the OS to the HD target on the powerbook?

After a bit of research I found that this was a fairly common problem and Apple were repairing the problem free of charge. So I sent it to a local shop and got it fixed. ( The fix, it turns out, is to replace the Logic Board).
About a week later, my laptop suddenly went to sleep with out warning. It would wake, when you hit the keys, then go back to sleep soon after. Eventually the only way to get it awake was to pull out the battery and power cord. After this cold reboot (which was irritating because you had to reset the clock all the time), it would work fine for an hour or so then the pattern would repeat it self.
I searched about the issue and found that it is a problem with the Trackpad temperature sensor on the PowerBook. The sensor would sporadically display 100+ degrees C, causing the system to think it will melt if it doesn't shut down. The system.log will show a message 'Power Management received emergency overtemp signal.' prior to it going to sleep.
Very frusted, I searched on the net and tried various remedies which involved removing Kernel Extensions that monitor the temperature of the trackpad. I don't think these extensions actually stop anything, just allow third-party apps to read the temperature sensors, because the fixes didn't make any difference.
After trying all of the fixes, I thought I'd take matters into my own hands (a hardware repair was out of the question because the laptop is out of warranty), so I downloaded the mach kernel source, found the block of code that sleeps after displaying the 'emergency overtemp signal' message and commented it out. After rebuilding the kernel, I pointed Open Firmware to the new kernel and rebooted.
I wouldn't recommend anybody doing this because it is potentially very dangerous!. You might ignore real overtemp signals, your PowerBook could catch on fire!Java
Several minutes after the restart I got the dreaded 'emergency overtemp signal' message twice within seconds of each other, while watching the temperature of the trackpad with the very handy app 'Temperature Monitor'. Because I had commented out the sleep code, the system did not sleep. The temperature of the trackpad temporarily went to 102.5 C, then back to a cool 37 C.
Problem solved ! In future I will change the code so that it is safer, i.e. keep a history of the fluctuation so that random 100+ degress C temperatures can be put in some perspective and only ignoring overtemp signals coming from the Trackpad.

IBM provides several versions of developer kits and runtime environments for Java technology for Linux distributions that run on IBM POWER and PowerPC hardware; that is, the Linux distributions running on the IBM eServer™ iSeries™, including eServer i5; eServer pSeries®, including eServer p5; eServer BladeCenter™ JS20; and eServer OpenPower™.

Many Linux distributions exist that were created for POWER or PowerPC hardware, such as:

  • CRUX PPC
  • Debian Linux
  • Gentoo Linux
  • Mandrakelinux
  • Yellow Dog Linux
  • ROCK Linux
  • Red Hat Enterprise Linux
  • SUSE LINUX Enterprise Server

To name a few leading distributions.

IBM JVMs were not designed to support all possible combinations of existing Linux distributions with all PowerPC hardware, some of which were not designed by IBM. Therefore, the compatibility of the IBM developer kit or runtime environment for Linux on IBM eServer iSeries, eServer pSeries, or eServer OpenPower, when run on Linux distributions for Apple PPC hardware, depends on the combination of a particular Linux distribution with a particular Apple hardware.

For more on compatibility of IBM developer kits for Java technology with Linux for IBM POWER and IBM PowerPC hardware, refer to the IBM developer kit for Linux: Tested platforms and IBM Developer kit for Linux download pages.

The availability and specifications of Java environments bundled with Linux distributions that run on Apple PowerPC hardware, such as G3, G4, and G5 processors, vary significantly. Some do not provide any JDK or JRE at all, and some provide a JRE only. If a JRE and/or JDK are provided with a particular Linux for Apple PPC hardware distribution, the JRE and/or JDK might not be of the version needed for the user's specific purposes.

Use IBM developer kits for Java technology for IBM POWER and IBM PPC hardware on Linux for Apple PPC hardware

To make use of the IBM developer kit or runtime environment for Java technology for IBM POWER and IBM PPC hardware on Apple PPC hardware, you need to know what type of host processor (G3, G4, or G5) your system has. You also need to know whether the JVM correctly determines host processor architecture so that the JIT compiler can produce the correct set of instructions for that architecture.

In order to generate the exact set of the host processor's instructions, the JIT compiler needs to precisely determine the architecture type of the underlying processor. If the processor type cannot be determined (possibly because it is not supported), the JIT produces a set of instructions for whatever the default processor is set to in that particular JVM version. Instructions produced for the default processor may be outside the set of instructions understood by the host processor. This will lead to the JVM terminating abnormally due to passing illegal instructions to a processor for execution - SIGILL crash. Disabling the JIT completely means that the JVM will run an application's Java bytecode in purely interpretive mode. The resulting performance most likely will not be satisfactory. Trying to skip basic JIT compilation of certain methods that the JIT compiled into some of the ISA instructions not belonging to the set understood by the host processor hardly makes sense. JIT debugging is usually a complex and time-consuming procedure. Even though it is possible to force all methods to be JIT-compiled on their first load into the JVM, it is very hard to predict when and what methods will be loaded into the JVM during the course of execution of any moderately complex Java application.

In order for the JIT compiler to determine the correct processor type, system configuration information is examined with the systemcfg_init() function. If that function returns NULL, the /proc/cpuinfo text file in the /proc file system is parsed and examined. Some Linux distributions do not have the cpuinfo file in the /proc file system. Making cpuinfo available in the /proc file system might be a solution.

Even if the processor type is determined correctly, the JIT might not have provisions for producing a subset of PPC instructions for a non-supported processor. One example is the Apple G4 processor, Motorola 7400, which is generically classified as belonging to the PowerPC 700 family. The IBM JVM’s JIT compiler does not support this processor. The solution is to instruct the JIT to produce a set of PowerPC 604 instructions. PowerPC 604 was one of the very first PowerPC processors, and its instructions constitute a core subset of instructions for any PowerPC processor. In other words, every PowerPC processor should be able to execute base PowerPC 604 instructions. Setting the global variable JITC_PROCESSOR_TYPE to '6' should instruct the JIT to produce PowerPC 604 instructions that G4 should be able to execute.

Table 1 shows possible values for the JITC_PROCESSOR_TYPE variable and how they correspond to various POWER and PPC processor architectures.

Table 1. JITC_PROCESSOR_TYPE values and their POWER/PPC architecture correlation
ValuePOWER/PPC Chip
1POWER(RS1)
2POWER I (RSC)
3POWER II
4PPC 601
5PPC 603
6PPC 604
7PPC 620
8PPC 630/POWER III
9Star POWER RS64
10Star POWER RS64II
11Star POWER RS64III
12POWER4
13POWER4+
14POWER5

Conclusion

By knowing the processor type of a particular system, you can decide what value to set for JITC_PROCESSOR_TYPE to make the stock IBM JVM for Linux distributions for IBM Power and IBM PPC hardware work on Linux distributions for Apple hardware. You can also see if the processor type cannot be determined or is not supported.

This will not be necessary if the IBM JVM for Linux distributions for IBM POWER and IBM PPC hardware recognizes the host processor and supports the set of instructions for that processor. For example, none of the above should be necessary when running Yellow Dog Linux versions 3 or 4 on Apple G5, since Apple G5 is based on IBM PowerPC 970 processor, which in turn is based on a single-core version of the IBM POWER4 chip for which the IBM JVM JIT can produce instructions.

Glossary

i5 - The IBM eServer i5 is the next generation iSeries that uses the POWER5 processor.

ISA - Instruction Set Architecture.

iSeries - IBM integrated servers based on the POWER architecture.

JDK - Java Development Kit. Superset of JRE. Includes JRE and development tools, such as compiler, debugger, and others.

JIT - Same as JITC.

JITC - Just-In-Time Compiler that converts Java bytecode into the native machine code of the host architecture.

JRE - Java Runtime Environment. Subset of JDK. Does not include development tools. Provides JVM to run Java bytecode compiled elsewhere.

JSDK - Java Software Development Kit. Abbreviation used interchangeably with SDK and JDK.

JVM - Java Virtual Machine.

NPTL - Native POSIX Threads Library. NPTL brings enterprise-class threading support to Linux that far surpasses the performance offered by LinuxThreads. It is based on 1:1 ratio between user and kernel threads.

OpenPower - IBM POWER5 microprocessor-based system tuned for Linux.

p5 - The IBM eServer p5 is the next generation pSeries that uses the POWER5 processor.

POWER - Performance Optimization with Enhanced RISC architecture. The name of the common chip architecture for IBM eServer pSeries, iSeries, and OpenPower servers.

POWER3 - One of the currently available POWER chips available for entry-level pSeries servers.

POWER4 - 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.

POWER4+ - Also known as POWER4-II. Upgrade of POWER4 working at higher frequencies and with less power consumption.

POWER5 - 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).

PowerPC - Hardware architecture derived from POWER.

PPC - Abbreviation for PowerPC.

pSeries - IBM UNIX-based servers that run AIX and/or Linux on IBM POWER-based hardware.

RHEL - Red Hat Enterprise Linux.

RISC - Reduced Instructions Set Computer.

SDK - Software Development Kit. Abbreviation used interchangeably with JDK and JSDK.

SLES - SUSE LINUX Enterprise Server.

SR - Service Refresh.

Downloadable resources

Mac Powerbook G4

Related topics

Powerbook G4 Restore Disk Download

  • Download the Java SDK for your platform at the IBM developer kit for Linux page.
  • The article 'Introduction to IBM JVM for Linux JIT diagnostics' (developerWorks, April 2004) introduces you to the Just-In-Time (JIT) compiler and the Mixed Mode Interpreter (MMI) optimizations techniques.
  • The article 'Performance tuning tips for the IBM JVM for Linux on POWER' (developerWorks, May 2004) introduces some of the important performance tuning issues for the IBM JVM for Linux.
  • Find diagnostics resources at IBM developer kits: Diagnosis documentation.
  • The Linux on POWER and PPC – penguinppc.org site provides a community site for Linux on Power Architecture.
  • The IBM POWER site provides a history of POWER development architecture
  • The PowerPC site provides a history of the PowerPC.