| ジケスRVM | |
|---|---|
| 開発者 | Jikes RVMチーム、貢献者[ 1 ] |
| 初回リリース | 1999 (1999年) |
| 安定版リリース | 3.1.4 / 2016年2月18日 ( 2016-02-18 ) |
| リポジトリ | |
| 言語 | Java |
| オペレーティングシステム | Unixライク |
| タイプ | Java仮想マシン、ライブラリ |
| ライセンス | Eclipseパブリックライセンス |
| ウェブサイト | jikesrvm.org |
Jikes Research Virtual Machine(Jikes RVM)は、Javaプラットフォーム向けに記述されたプログラムを実行する成熟した仮想マシンです。他の多くのJava仮想マシン(JVM)とは異なり、Jikes RVMはプログラミング言語Javaで記述されており、メタ循環と呼ばれる実装スタイルを採用しています。Eclipse Public Licenseに基づいてリリースされた、無料のオープンソースソフトウェアです。
歴史
- 1997年11月、 IBMのトーマス・J・ワトソン研究所で、ハラペーニョ・プロジェクトが社内研究プロジェクトとして開始されました。[ 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(Association for Computing Machinery )のプログラミング言語に関する特別興味グループ(SIGPLAN)ソフトウェア賞を受賞した。[ 3 ]
ブートストラップ
Jikes RVMはメタ循環型であるため、ブートイメージを作成するためにブートストラップJVMを実行する必要があります。ブートイメージは、ブートストラップJVMのリフレクションを使用して作成された、Jikes RVMの起動に必要なオブジェクトのビューです。実行時にブートイメージをロードするのは、 小さなCローダーです
VMマジック
VMマジックとは、コンパイラがクラスに対して、そのクラス内のバイトコードが実行すべきコードとは異なるコードを生成することです。VMマジッククラスはメモリへの直接アクセスを可能にし、メモリ管理ツールキットのパフォーマンスの鍵となります。VMマジッククラスはorg.vmmagicパッケージにあり、他のJavaプロジェクトで再利用されています
メモリ管理ツールキット
メモリ管理ツールキット(MMTk)は、Jikes RVMやSingularityオペレーティングシステム、共有ソース共通言語基盤(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 にも参加しています。
参照
- Jikes
- Java仮想マシンの一覧
- 無料のJava実装
- ブートストラップ(コンパイラ)
- セルフホスティング
- セルフインタープリタ
- PyPy(PythonでのPython実装)
- Rubinius (Ruby での Ruby 実装)
参考文献
- ^ 「Jikes RVMチームと貢献者」
- ^ 「FAQ」。
- ^ “2012: Jikes Research Virtual Machine (RVM) | SIGPLAN” . 2013年7月3日時点のオリジナルよりアーカイブ。2013年6月21日閲覧。
- ^ 「Jikes RVMプロジェクト提案2009」 。 2013年4月13日時点のオリジナルよりアーカイブ。2015年4月23日閲覧。
- ^ 「Jikes RVM 研究論文」。
- ^ 「Jikes Research Virtual Machineプロジェクト:オープンソース研究コミュニティの構築」(PDF) IBM Systems Journal 44 ( 2). 2005年.