picardJava Links(1)

2001 6/6更新
[Java groupTaki Laboratory]


主に組込みのためのJava関係のリンク集(その1)です.



主な情報源


定番,初心者必見

だんだんでかくなってきたので削除するか別ページにするか検討中. ...になって早幾年月.一体いつになったら手を付けるのやら.



Javaチップ,Java仮想マシン(JavaVM),OS,実行環境


Sunの組み込みJava

SUNには組み込みのノウハウがないだけに,これらの規格は必ずしも優れているとは 言えないようです.が,JavaCardやJavaPOSなどでは,対抗馬がいないだけに業界標準と なりつつあるとも聞いています.新規格のJiniも期待できそうです.PersonalJavaと EmbeddedJavaに新ライセンスを適用しオープンソース化しました. picoJavaMAJCに関しては Javaプロセッサの項目を参照.

(0,1/18リンク追加) JavaOne'99で大きなニュースがありました.Java2 MEとKVMの登場です.2000年1月の CESでは様々な情報家電製品の発表があったようです. [CES]

Jiniについては家庭内ネットワークの項目参照.


(0,6/21リンク追加)HP(Hewlett Packard)の組み込みJava

HPは, JavaOne'98直前にChaiVM(当時はHP Embedded Virtual Machineと呼んでいた.)を 発表してから,様々な製品を発表してきました.この前のJavaOne'99ではChaiVM3.0と 共にChaiFreezeDryが発表され,ラインナップがさらに強化されました. [日本語]

'99 10/1に Chai Appliance Platform を発表.ChaiVMの新版ChaiVM4.0.従来のラインナップに加え,Chai/e-speak,Chai/OpenView,ChaiFarerを追加. '01 2/13にMicrochaiVMを発表. [記事]


Javaプロセッサ

(2000年4/4加筆)Javaプロセッサの種類も増えてきて,そろそろ実用レベルになって きたという感じ.これらのチップはバイトコードを直接実行できるものとできないものに 大別できる.

直接実行型

多くのバイトコード(60%〜80%程度が目安)を直接実行可能なもの.一般的に メモリ消費が小さいが,ピーク性能はそれほど高くはないはず.一般論として, 携帯機器や家電などにはこちらの方が有利.

JeRTy-プロセッサについてはJeRTyの項目参照.

スタックベース

一部良く分からないものも含む.

SRISC

SRISCは造語で「RISCベースのスタックアーキテクチャ」の意.CRISCのスタック版. JavaVMのモデルば意外にRISCとの親和性が高いので,RISCベースにしてもアーキテクチャへの 負担はそれほど大きくはならないようだ.

その他(不明,未分類含む)

変換後実行型

バイトコードを直接実行できないもの.JIT等で変換した後に実行する.性能は高く できるがメモリ消費は大きくなる.セットトップボックス等,一般論として, ハイエンドの情報家電などではこちらの方が有利.こういう意味ではJavaプロセッサと 従来型プロセッサとの境界は,当初考えられていたほどはっきりしたものではない.

スタックベース
VLIW

JITアクセラレータ

勝手に命名した.(後で変更するかも.)JITコンパイラをハードウエアで 実現し,変換後は他プロセッサで動く.そういう意味では一種のコプロセッサ. 多分,現時点ではHotShotのみ.

その他


(01,4/13書き直し) SUN以外の独自実装Javaランタイムも数多く出てます.有名どころとしては, アクセスのJV-Lite2,アプリックスのJBlend,Hewlett PackardのChaiVM, Insignia SolutionsのJeode,IBMのVisualAge MicroEdition,TaoのIntentJTE, 辺りでしょう.ただし,今この瞬間にも水面下で動いていて,ある日突然公式 発表してメジャーになるということも良くあるので,あまりあてにしないように.

(主に)インタプリタ

(比較的)大型

一つの目安としてはランタイムの消費メモリが512KB〜1MB程度.HPのChaiVMや InsigniaのJeodeもこの分類に含まれる.もちろん大型とは言えデスクトップ用の ランタイムに比べれば数段コンパクト.あくまで組み込みとしては比較的 大きいというだけで,Windowsのように数十〜百数十MBも食うわけではない.

小型

一つの目安としては(最小構成で)128KB以下.大抵は機能が制限されていたり パフォーマンスが劣っていたりするらしい.

不明/未分類


JIT(Just-In-Time)コンパイラ

JITコンパイラは商品に組み込まれる例が多いよう.この他にも多数JITがあるようだが 研究の役に立ちそうな情報はそれほど多くはない.(shuJITのページが比較的資料が多い.) 一般論としては高速だがメモリ消費が多いので組込みにはあまり向かない.下のもの以外に, 東芝もTXシリーズ用のPersonalJava環境用のJITを開発している.

Inferno上のj2dも一種のJITコンパイラと言えるでしょう.


AOT(Ahead of Time)コンパイラ

AOTはダイナミッククラスローディングが苦手なこともあり組込み用の例はそれほど多くない. TurboChaiは「HPの組込みJava」の項目を参照.

東芝情報システムのJexeGen,ISIのFastJもAOTコンパイラ.JBedでも使っているらしい. PersonalJavaやEmbeddedJavaの開発に使われるJavaCodeCompactも一種のAOTだと思われる.


動的コンパイラ

動的コンパイラは技術的に難しいこともあってかこの方式のJavaVMは少ない. 組込み用としてはInsigniaのJeodeくらいしかないが,今後増える可能性はあると思う.


OS

従来のOSの上に組込み用Java実行環境を載せたものが多い.OSが中心と思われるものを こちらに分類しました.組込み用からサーバー用まである.

最近は多くのOSがJavaに対応しており,今後さらに増えていくと思われる. ここに書かれていないものも多数あるのではないかと思う. その他のOSはこちら. 必ずしもJavaと関係があるとは限らない.

Java用:数はそれほど多くない.一番の問題は従来の 資産の継承が困難なこと.

RTOS+Javaランタイム

小型(非リアルタイム)OS+Javaランタイム

汎用OS

主にセットトップボックスやインターネット端末など比較的大型の機器用. 組込み用とはいうが比較的デスクトップ用に近く,組込み用としては大きい 部類に入るらしい.大きいとはいえ,64〜128MBものメモリを必要とする 某独占企業の厚化粧OSに比べれば格段に小さく,合計10MB前後で動くらしい. BTRONもここに含まれるかも.



その他,興味深い技術,団体など


ツール,ベンチマーク等


その他


[Java GroupTaki Laboratory]