Oracle、Linux ARM用JDKおよびMac OS X用JREをリリース

本日、JDK 7 Update 6の公開をアナウンスしました。このリリースにはMac OS X版のアップデートや、Linux ARM向けの新しい移植版の追加が含まれています。

Java 7のMac OS Xへの移植は長い時間をかけて進められてきました。2010年11月からAppleとともにOpenJDKでの作業を始め、ここまでにJDK/JRE側とOS X側の両方で本当に多くの作業が必要でした。舞台裏では、ビルドやテストのインフラを拡張したり、JavaとOSのリリースサイクルの分離方法を見つけ出すといった、一見些細ですが時間のかかるタスクのために多くの作業が行われてきたのです。ともかく、この7u6リリースでのデスクトップJREの追加によって、ついに全機能セットが完成しました。java.oracle.comからダウンロードが可能になっており、一週間くらいでjava.comからも入手可能になるでしょう。

JDK 7u6では、汎用向けのLinux ARM版JDK(デスクトップJREではありません)も追加され、他のプラットフォーム用のOracle Javaと同じライセンス条件で利用可能になりました。このJDKリリースは、新興のARMサーバ市場や、BeagleBoardPandaBoardRaspberry Piといった開発用ボードコミュニティを狙っています。この移植版では、ARMv6およびv7用の32ビットバイナリが提供され、これはSwing/AWTやクライアント(C1)およびサーバ(C2)の両コンパイラをフルサポートし、多くのLinuxディストリビューションで実行可能です。一つ注意すべき点は、現在のバイナリはsoftfloat ABIだけなので、例えばRaspbianディストリビューションのようなhardfloat ABIを使うものでは動作しないことです。今後のJDKリリースでは、hardfloatサポートの追加、そしてARM版JavaFXのサポートも予定しています。

ARM版については多くの質問があると思いますので、簡単なFAQを用意しました:
  • Java SE EmbeddedとARM版JDKとの関係は?Java SE Embeddedは、フットプリントの小さなデバイス向けに最適化されたJava SE準拠の実行環境です。ARM v5/6/7やx86、PPCなど複数のアーキテクチャ用のものが用意されています。組み込み利用向けにOracleが商用ライセンスしている製品です。JDKは、開発者やサーバーサイドアプリケーション向けの汎用Java実行/開発環境です。x86やSPARC(そして今回からARMも)といったアーキテクチャ向けのものが利用できます。汎用の利用は無償ですが、Java SEサポートプログラムという商用サポートも用意されています。
  • ARM版JDKは無料ですか?それとも商用ライセンスが必要ですか?すべての汎用向けJDKやJREバイナリと同様、開発目的での利用や、汎用ハードウェア上での業務利用は無料です。また、汎用コンピュータをターゲットとするアプリケーションには無償でバンドルして再配布することもできます。正確なライセンス条件についてはエンドユーザライセンスをご覧ください。いくつか例を挙げると、データセンターに設置してTomcatやGlassfishを走らせるARMサーバは汎用といえます。また、Rasberry PiボードをPCのように使う場合も同様です。工業用コントローラやキオスク機器は汎用ではないため、どちらも商用ライセンスが必要です。
  • Oracle JDKのARM移植版はOpenJDKでも利用可能ですか?いいえ、現時点ではこれをオープンソース化する予定はありません。
  • 私はRaspberry Pi/BeagleBoard/PandaBoardを持っています。これらの上でJavaを走らせる方法は?まず、softfloat ABIを使ったLinuxディストリビューションを使っていることを確認してください。後はOracle JDKをダウンロードしてインストールするだけです。
  • なぜOracleはARM移植に投資し、そしてそれを無料で配布するのですか?ARM上でのJava開発の推進はJavaの繁栄に寄与するでしょう。また、いつかARMサーバ上で何かミドルウェアを売れるかもしれませんね。
  • グラフィックスはサポートされますか?サウンドはどうでしょう?はい、このJDKバイナリはheadful版ですからSwing/AWTとサウンドの両方をサポートしています。ちなみに、headless版Java SE Embeddedのバイナリではサウンドは利用できませんが、これはweb上で見られるいくつかのサウンド問題の報告が主な原因です。Swing/AWTにはX11R6が必要で、フレームバッファはサポートされていません。JavaFXはLinux ARM上ではまだ利用できませんが、ロードマップ上にはあります。
  • Linux ARM版JDKは、他のプラットフォーム上のJDKと機能面で完全に同等ですか?JDKの機能の大部分はサポートされていますが、いくつか利用できないものもあります。例えば、G1 GC、階層型コンパイル、プラグインやwebstartなどの機能はありません。詳しくはリリースノートを参照してください。これらのうちいくつかは将来のリリースで追加されます。
  • softfloat、hardfloatとは何のことですか?Oracle JDKはいつhardfloatをサポートしますか?ARMチップには浮動小数点演算をハードウェアでサポートするもの(hardfloat)とソフトウェアで行うもの(softfloat)があります。ハードウェアによる浮動小数点演算をサポートするARMチップ上で実行されるOSは、関数呼び出しのパラメータの受け渡しに浮動小数点レジスタを使うことができるため性能が向上します。パラメータの受け渡し方法はOS、ライブラリ、そして(JVMのような)アプリケーションの間の契約であり、ABI(Application Binary Interface)と呼ばれます。単純なケースでは、softfloat ABIのOSは、すべてのライブラリやアプリケーションがsoftfloat対応にコンパイルされることを要求し、hardfloatのOSは、ライブラリやアプリケーションがhardfloat対応にコンパイルされることを要求します。hardfloat OSが、softfloatアプリケーションを実行できる互換レイヤを提供できる特別なケースもあります。最近まで大半のLinuxディストリビューションはsoftfloatでした。このところ、Linuxディストリビューションの多くは積極的にhardfloatに移行しており、そのうちいくつかは(Ubuntu 12.04が良い例です)softfloat互換性も提供しています。一方でRaspbianなどはhardfloat専用です。ARM版Oracle JDKの最初のリリースはsoftfloat ABIを使っているので、softfloatのディストリビューションか、softfloat互換性を持つhardfloat上で動作し、hardfloatのみでは動作しません。これは単にタイミングの問題で、将来的にはhardfloat版のJDKが提供されます。おそらく段階的に、例えばまずARMv7、その後にARMv6といった形で提供され、初期リリースはheadless、すなわちSwing/AWTなしになるかもしれません。できるだけ早く早期アクセスビルドを用意し、java.net上で公開する予定です。まだ公表できるような具体的な日程はありませんが、JavaOne 2012ではロードマップをお知らせできることを望んでいます。
  • 今回、一般向けのARM版ができたわけですが、他のOS、例えばiOS版をサポートする予定は?Linuxはシンプルな移植でしたが、iOSはそうではありません。すでにいくつかの試作は行いましたが、現時点ではまだロードマップ上にあるとはいえないでしょう。論点の1つはUIをどうするか、ということです。JavaFXも選択肢の1つですし、ADFモバイルで使われているようなJava+Webの組み合わせもあります。これは、どのソリューションがその投資に見合うだけ幅広く受け入れられるだろうか、という問題です。もし今すぐに欲しいのなら、OpenJDKに直行してハックし始めてください! :-)
  • Oracleの顧客ではない場合、ARM版JDKの問題点はどこに報告すべきでしょうか?OTNのJava developer forumを使ってください。
  • Jazelleのハードウェアバイトコード実行はサポートされていますか?いいえ。優れたJITがあるときはJazelleは不要です。そのためにメモリやCPUパワーを買うことができます。

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

日本オラクルのエンベデッドJavaチームから、最新情報をお送りしていきます。

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today