| 開発者 | Jikes RVMチーム、寄稿者[1] |
|---|---|
| 初回リリース | 1999年 |
| 安定版リリース | 3.1.4 / 2016年2月18日 |
| リポジトリ |
|
| 書かれた | ジャワ |
| オペレーティング·システム | Unixライク |
| タイプ | Java仮想マシン、ライブラリ |
| ライセンス | Eclipse パブリックライセンス |
| Webサイト | jikesrvm.org |
Jikes Research Virtual Machine ( Jikes RVM ) は、 Java プラットフォーム用に記述されたプログラムを実行する成熟した仮想マシンです。他のほとんどのJava 仮想マシン(JVM) とは異なり、メタ循環と呼ばれる実装スタイルでプログラミング言語Javaで記述されています。Eclipse Public Licenseに基づいてリリースされた無料のオープン ソース ソフトウェアです。
歴史
- 1997年11月、 IBMのトーマス・J・ワトソン研究所でJalapeñoプロジェクトが社内研究プロジェクトとして開始されました。[2]
- 1999 年、2000 年に、Jikes RVM の新しい側面を説明する研究論文が IBM の研究者によって公開され、いくつかの大学にソース コードへのアクセスが許可されました。
- 2001 年 10 月、Jikes RVM バージョン 2 が、Common Public Licenseに基づくオープン ソース モデルプロジェクトとしてリリースされました。このリリースでは、PowerPC および Intel アーキテクチャと、さまざまなガベージ コレクションアルゴリズムがサポートされています。
- 2002 年、Jikes RVM 2.2 がリリースされ、正確なガベージ コレクターが、現在では人気のMemory Management Toolkit の正確なコレクターにリファクタリングされました。
- 2004 年、Eclipse の実行に特に重点を置いて、安定性とパフォーマンスを部分的に向上させた Jikes RVM 2.4 がリリースされました。
- 2007 年、Jikes RVM 2.9 の開発は、Java 5.0 の機能とApache Antビルド システムを使用するためにコード ベースを大幅にリファクタリングして開始されました。
- 2008 年、Jikes RVM 3.0 がリリースされ、2.9 の開発が終了し、コード ベースに新たな安定性がもたらされました。
- 2009 年、Jikes RVM 3.1 がEclipse Public License (EPL) に基づいてリリースされ、バージョン 3.0.1 よりもパフォーマンスが大幅に向上し、ネイティブスレッドに切り替わりました。
- 2012年、Jikes RVMは「高品質とモジュール設計」が評価され、ACM(米国計算機協会)のプログラミング言語特別興味グループ(SIGPLAN )ソフトウェア賞を受賞した。 [3]
ブートストラップ
メタ循環であるJikes RVM では、ブート イメージを作成するためにブートストラップJVM を実行する必要があります。ブート イメージは、ブートストラップ JVM のリフレクションを使用して作成された、Jikes RVM がブートするために必要なオブジェクトのビューです。小さなCローダーが、実行時にブート イメージをロードする役割を担います。
VMマジック
VM Magic は、コンパイラがクラス内のバイトコードが実行すべきものとは異なるコードをクラスに対して生成するものです。VM Magic クラスはメモリへの直接アクセスを可能にし、メモリ管理ツールキットのパフォーマンスの鍵となります。VM Magic クラスはorg.vmmagicパッケージに存在し、他の Java プロジェクトで再利用されています。
メモリ管理ツールキット
メモリ管理ツールキット (MMTk) は、Jikes RVM や、Singularityオペレーティングシステム、Shared Source Common Language Infrastructure (SSCLI、旧称 Rotor) などの他のプロジェクトで使用されている精密なガベージコレクターのセットです。[4] Jikes RVM の他の部分と同様に、実装はJavaですが、主に VM Magic に依存しています。
クラスライブラリ
Jikes RVM では、 Apache HarmonyまたはGNU Classpathクラスライブラリのいずれかを使用できます。OpenJDKのクラス ライブラリも実験的にサポートされています。
コンパイラ
Jikes RVM は、高速なベースラインコンパイラを使用して、特定のアーキテクチャ用のコードをすばやく生成します。その後、アダプティブ コンパイルは、オンスタック置換 (OSR) などの機能を備えた最適化コンパイラを使用してコードを再コンパイルします。アダプティブ コンパイル システムは、費用便益分析モデルを使用します。
ランタイム
Jikes RVM のランタイムには、高速ロック、共同スケジューリング、高速例外収集およびディスパッチのサポートなどのメカニズムを含む多くの革新的な機能があります。
プロセッサ
Jikes RVM は、PowerPC (または ppc) およびIA-32 (または Intel x86、32 ビット)命令セットプロセッサ アーキテクチャをサポートします。
研究
Jikes RVMは研究プロジェクトであるため、新技術の研究に重点を置いており、2015年時点で220を超える論文が発表されていることからも明らかです。[5] [6]
Jikes RVM は、 Google Summer of Code 2007、2008、2010、2011、2012 にも参加しています。
参照
- ジケス
- Java仮想マシンのリスト
- 無料のJava実装
- ブートストラップ(コンパイラ)
- セルフホスティング
- 自己通訳者
- PyPy (Python での Python 実装)
- Rubinius (Ruby での Ruby 実装)
参考文献
- ^ 「Jikes RVM チームと貢献者」。
- ^ 「よくある質問」.[永久リンク切れ ]
- ^ “2012: Jikes Research Virtual Machine (RVM) | SIGPLAN”. 2013年7月3日時点のオリジナルよりアーカイブ。2013年6月21日閲覧。
- ^ 「Jikes RVM Project Proposals 2009」。2013年4月13日時点のオリジナルよりアーカイブ。2015年4月23日閲覧。
- ^ 「Jikes RVM 研究論文」。
- ^ 「Jikes Research Virtual Machine プロジェクト: オープンソース研究コミュニティの構築」( PDF)。IBM Systems Journal。44 (2)。2005 年。
外部リンク
- 公式サイト
- JikesRVM Github
- Jikes RVM ユーザーガイド
- SourceForge の Jikes RVM プロジェクト ページ
- DaCapo ベンチマーク
- ワラ
