ピュアJava(CLDC)でDalvik VMを開発しました。

865 views
Skip to first unread message

hisano

unread,
Mar 16, 2009, 10:21:53 PM3/16/09
to 日本Androidの会
イーフローの久納(ひさのう)です。

はじめまして、今回初投稿です。
よろしくお願いします。

先月から本格的にDalvik VM周りの研究開発に取り組んでいます。
Androidのソースコード公開と同時にDalvik VMの仕様書も公開されました。
ですが、仕様書を読んでも、いまいち設計コンセプトや制限等がピンときませんでした。
実際に作ってみた方が理解できそうということで、四日半ほどかけてJava(CLDC)でDalvik VMを開発してみました。

公開サイト: http://code.google.com/p/android-dalvik-vm-on-java/
ニュースリリース: http://www.eflow.jp/news/dalvikvm_javacldc031709.html
サポート機能:
 ・Dalvik Execution(.dex)ファイル形式
 ・すべてのDalvik VM命令
 ・ユーザ定義のクラスやインターフェイス
 ・例外
 ・マルチスレッド(synchronizedブロック、waitやnotifyなど)
 ・CLDC APIをサポート(Androidフレームワークは未サポート)

よろしければご覧ください。

mizmit1222

unread,
Mar 16, 2009, 10:54:08 PM3/16/09
to 日本Androidの会
みずのです。

これはスゴイ。あとでコードを拝見させていただきたく思います。

ところで、ライセンスとしてGPLを選択されたようですが、何か
特別な事情があるのでしょうか?DalvikのライセンスはApache
2.0ですし、Android全体を見ても、Linuxカーネルレイヤより上の
層では、Apache 2.0もしくはBSDライセンスを採用しています。

ライセンス周りは(も?)あまり詳しくありませんが、GPLだと
ライセンスにコンフリクトが起きないか気になります。

ではでは。

adamrocker

unread,
Mar 17, 2009, 7:08:22 AM3/17/09
to android-g...@googlegroups.com
adamrockerです。

スゲーっす!
Java VM上で動くDalvik VMっていうVM重箱構成が面白いですね。
dexパーサとインタプリタを作るめんどくささを考えただけでも目眩が...><
その手間を惜しげもなくオープンにして下さるとは感謝です。

ところでGPLは厳密にはソースコードを参考にして、
何かを作っちゃうとライセンスに違反するんでしょうか?
それとも、見るぐらいならOKですか?
ライセンスに明るくないので知識が曖昧なのですが、
GPLはとても厳しいという印象を持ってます。

ともかく、アザーッス!

2009/03/17 11:54 mizmit1222 <mizmi...@gmail.com>:

hisano

unread,
Mar 17, 2009, 9:40:45 AM3/17/09
to 日本Androidの会
イーフローの久納(ひさのう)です。

> ところで、ライセンスとしてGPLを選択されたようですが、何か
> 特別な事情があるのでしょうか?DalvikのライセンスはApache
> 2.0ですし、Android全体を見ても、Linuxカーネルレイヤより上の
> 層では、Apache 2.0もしくはBSDライセンスを採用しています。

バージョンアップを進めて機能が充実したら、GPLと商用ライセンスのデュアルライセンスにする予定です。
以前Skype4JavaをApache 2.0ライセンスにしたのですが、ビジネス化の目処がなかなか立たずに経営陣からの評判が悪かったので今回は
GPLでの公開となりました。

> ライセンス周りは(も?)あまり詳しくありませんが、GPLだと
> ライセンスにコンフリクトが起きないか気になります。

Dalvik VMのソースコードはまったく使っていません。
(仕様書の誤りや、曖昧な点を調査する際にソースコードで仕様を調査はしていますが)
ですので、別のライセンスで公開するのは問題ないと思います。

hisano

unread,
Mar 17, 2009, 9:51:13 AM3/17/09
to 日本Androidの会
イーフローの久納(ひさのう)です。

> ところでGPLは厳密にはソースコードを参考にして、
> 何かを作っちゃうとライセンスに違反するんでしょうか?
> それとも、見るぐらいならOKですか?

GPLには「著作物の一部が『プログラム』から派生したものではないと確認でき、それら自身別の独立した著作物であると合理的に考えられるならば、あな
たがそれらを別の著作物として分けて頒布する場合、そういった部分にはこの契約書とその条件は適用されない。」と書かれています。
ソースコードを参照 + Dalvik VMの仕様を理解してコードを書くのは、"独立した著作物であると合理的に考えられる"にあたると思います。

Dalvik VM仕様理解の一助になればと、ソースコードをオープンソースで公開しました。
ぜひぜひご覧ください。

Hideo Kinami

unread,
Mar 17, 2009, 5:31:25 PM3/17/09
to android-g...@googlegroups.com
木南です。

久納さん
これは、すごいですね。
貴重な情報の公開ありがとうございます!

> Java VM上で動くDalvik VMっていうVM重箱構成が面白いですね。

Windowsの上で、VMWareでubuntu動かして、Android EmulatorでQEMU動かして、その上でJava
VM動かして、さらにその上で、Dalvik動かして、Androidアプリが動くというわけですね(あ、別にAndroidの上で動かす必然性はないかもしれませんが、、、)。
されにその上に、Android版のdex-JRubyとか動かすと、もう、マニア必見の仮想化の真髄みたいな環境ですね。超豪華、5段重ねみたいな。。。

では!
--
Hideo

2009/03/17 20:08 adamrocker <adamr...@gmail.com>:
--
木南 英夫 (http://d.hatena.ne.jp/hkinami/)
Reply all
Reply to author
Forward
0 new messages