OpenJDK

OpenJDK (Open Java Development Kit) について



OpenJDKは、プログラミング言語Javaの自由かつオープンソースの実装です。サン・マイクロシステムズによって2006年に開始され、GNU General Public License (GPL) (リンク例外付き) の下でライセンスされています。このリンク例外は、JavaクラスライブラリがGPLの影響を受けずに利用できるようにするためのものです。現在、OpenJDKはJava SE 7以降の公式リファレンス実装として広く利用されています。

主要なコンポーネント



OpenJDKプロジェクトは、複数の重要なコンポーネントで構成されています。

HotSpot: Java仮想マシン (JVM) であり、Javaプログラムの実行環境を提供します。
Javaクラスライブラリ: Java APIの基盤となるクラス群であり、様々な機能を提供します。
javac: Javaコンパイラであり、Javaソースコードをバイトコードに変換します。

これらのコンポーネントに加え、以前はサンによってオープンソース化が検討されていたウェブブラウザ用プラグインやWeb Startは、OpenJDKには含まれていません。これらの代替として、IcedTeaやOpenWebStartなどのプロジェクトがフリーな実装を提供しています。

バージョン管理とリリースモデル



初期のOpenJDKはJava SE 7をベースにしていましたが、JDK 10以降は、JDKプロジェクトがJava SEプラットフォームのオープンソースリファレンス実装を作成する役割を引き継ぎました。特に、6ヶ月ごとのフィーチャーリリースを提供する時間ベースのリリースモデルを採用し、継続的な開発と迅速な新機能提供に重点を置いています。

以下は、現在開発中のOpenJDKとJDKプロジェクトのブランチです。

JDKプロジェクト リリース24
JDKプロジェクト リリース23
JDKプロジェクト リリース22
JDKプロジェクト リリース21
JDKプロジェクト リリース20
JDKプロジェクト リリース19
JDKプロジェクト リリース18
JDKプロジェクト リリース17
JDKプロジェクト リリース16
JDKプロジェクト リリース15
JDKプロジェクト リリース14
JDKプロジェクト リリース13
JDKプロジェクト リリース12
JDKプロジェクト リリース11
JDKプロジェクト リリース10
OpenJDK 9プロジェクト (JDK 9の基盤)
OpenJDK 8uプロジェクト (JDK 8のアップデート提供)
OpenJDK 8プロジェクト (JDK 8の基盤)
OpenJDK 7uプロジェクト (JDK 7のアップデート提供)
* OpenJDK 6プロジェクト (Java 6のオープンソース版として修正)

ビルドとライセンス



以前は、Oracleが提供する長期サポートリリース (LTS) のアップデートはパーミッシブ・ライセンスで提供されていましたが、JDK 11や8u211以降はこれが中止されました。このため、他のグループがパーミッシブなライセンスでのビルドを提供し始めました。ただし、Oracle JDK 17からは、次のLTSリリース後少なくとも1年間は、No-Fee Terms and Conditions (NFTC) というパーミッシブ・ライセンスが適用されることが発表されています。Amazon、Microsoft、Oracle以外のグループは、OpenJREも配布しています。

IcedTeaとの関係



OpenJDKをFedoraなどの自由なGNU/Linuxディストリビューションに組み込むためには、すべてのコンポーネントが自由ソフトウェアでビルド可能である必要があります。当初、Javaクラスライブラリの一部にはプロプライエタリなコンポーネントが含まれており、自由ソフトウェアのみでのビルドは不可能でした。この問題を解決するために、2007年6月にレッドハットがIcedTeaプロジェクトを開始しました。IcedTeaはOpenJDKとGNU Classpathを組み合わせ、プロプライエタリな部分をClasspathのコードで置き換えることで、ブートストラップ問題を解決しました。

レッドハットは Sun Contributor Agreement と OpenJDK Community TCK License に署名し、IcedTeaプロジェクトと緊密に連携しました。これにより、Linux環境での技術がLinuxディストリビューションであるFedoraやアプリケーションサーバーJBossから導入されました。IcedTeaは、OpenJDKに残っていたプロプライエタリな部分の代替となる自由ソフトウェアを提供しました。

2008年5月には、Fedora 9やUbuntu 8.04などのディストリビューションが、完全に自由かつオープンソースのコードをベースとしたIcedTea 6を採用しました。その後、DebianにもIcedTea 6パッケージが導入され、OpenJDKはOpenSUSEやRed Hat Enterprise Linux (RHEL) などでも利用可能になりました。2008年6月、レッドハットFedora 9 上で IcedTea 6 を使ってビルドされたOpenJDKパッケージが、Java 6実装と完全に互換性があることを発表しました。また、2009年7月には、Ubuntu 9.04 でビルドされた IcedTea 6 も Java SE 6 の互換性テストに全て合格しました。

歴史



サンの初期の取り組み
2006年のJavaOneで、サンはJavaをオープンソースにする意志を表明しました。その後、ジョナサン・シュワルツは、Javaプラットフォームの中核部分を数ヶ月以内にオープンソース化すると発表しました。2006年11月13日、サンはHotSpotJavaコンパイラをGPLでリリースし、残りの部分も2007年3月までにGPLでリリースする予定であるとしました。ただし、サンがGPLで公開する権利を持たない一部のコンポーネントは除外されました。この動きは、リチャード・ストールマンによって「Javaトラップ」からの脱却と評価されました。

クラスライブラリのリリース
2007年前半にJava Development Kit (JDK) のほとんどの部分をフリーかつオープンソースでリリースするという約束通り、サンは2007年5月8日にJavaクラスライブラリのソースコードをGPLでリリースしました。ただし、サードパーティが著作権を持つ一部は除外されました。サンは、これらのプロプライエタリなコンポーネントを代替実装で置き換え、クラスライブラリを完全にフリーにする計画を発表しました。2008年5月には、プロプライエタリな部分は1%未満となり、OpenJDKをバイナリ部分なしにビルドできるようになりました。2010年12月には、全ての残存部分がオープンソースで置き換えられ、JDK全体が完全にオープンソースとなりました。

コミュニティによる改良
2007年11月5日、レッドハットはサンとの合意を発表し、Sun Contributor AgreementとOpenJDK Community TCK License Agreementに署名しました。2007年11月には、Porters Groupが結成され、OpenJDKを様々なプロセッサアーキテクチャやオペレーティングシステムに移植する作業が開始されました。BSD系への移植はKurt MillerとGreg Lewisが主導し、Mac OS Xへの移植はLandon Fullerが主導しました。これらのグループは、OpenJDKコミュニティへの貢献を積極的に行いました。

寄贈コードの受け入れプロセスは厳格で、コードは別のOpenJDKコミッターによってレビューされ、寄贈者はSun/Oracle Contributor Agreementに同意する必要がありました。また、バグ修正のためにjtregテストを行うことも推奨されていました。当初、外部からのパッチのコミットはサン技術者のみが行っていたため時間がかかっていましたが、後に改善され、簡単なパッチは迅速にコミットされるようになりました。

IBM、アップル、SAPの参加
2010年10月11日、Apache Harmonyプロジェクトを推進していたIBMがOpenJDKへの参加を表明し、事実上HarmonyからOpenJDKへの開発をシフトすることを発表しました。2010年11月12日には、AppleがOracleと共にMac OS X向けOpenJDKプロジェクトを発表しました。AppleはMac OS X上のJava SE 7実装向けに主要なコンポーネントやツール、テクノロジーを提供することを発表しました。2011年1月11日、OpenJDKにてMac OS X向け移植プロジェクトが結成され、Appleから最初のコード寄贈が行われました。2011年7月には、SAP AGがOpenJDKプロジェクトへの公式参加を発表しました。

このように、OpenJDKはオープンなコミュニティと企業の貢献によって、継続的に開発と改良が進められています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。