
Introduction
OpenJDK 6 is a free and open source implementation of the Java Platform, Standard Edition Version 6. Currently, this project is actively maintained by the community with the leading role held by Red Hat, Inc.
Among all Java Platform versions, Java 6 had the longest lifetime. Its Reference Implementation Sun Java 6 was released in December 2006, and OpenJDK 7, the Reference Implementation of the next version of the Java Platform, wasn't out until July 2011. During these 5 years, a lot of applications were built on this platform version.
Also, during these years the authors of Reference Implementation, Sun Microsystems, were acquired by the Oracle Corporation, and so the product was renamed Oracle Java. In February 2013, Oracle ended public support for Oracle Java 6, but it didn't mean the end of Java 6: Red Hat, Inc. took the leading role in OpenJDK 6 and now it continues to release new versions on a regular basis.
The OpenJDK 6 codebase differs greatly from both Oracle and Sun Java 6 and OpenJDK 7 codebases. It started as a fork of OpenJDK 7 build 20, and the first version that passed the Java Compatibility Kit test suite was released before the general availability of OpenJDK 7. The versioning scheme differs from the versioning of Oracle Java 6. Each release doesn't have an update number and only has a build number, such as b01 and b02. At the time of writing this book, the release from January 2014 is Version b30.
You can see the family tree of OpenJDK 6 in the following diagram:

Diagram reference: https://blogs.oracle.com/darcy/entry/openjdk_6_genealogy
OpenJDK 6 is supported on Linux, Windows, and Solaris operating systems. Only Windows and Linux versions will be discussed further. For both Linux and Windows operating systems, x86 and x86_64 architectures are supported. To conform with the OpenJDK terminology, the i586 term will be used for x86 architecture and amd64 will be used for the x86_64 one. OpenJDK 6 does not support cross compilation, so the i586 operating system must be used to build the i586 version, and the same is true for amd64. The build process for both architectures is almost the same for the Linux version, but differs a lot for the Windows one.