今日は、
Tao 社開発の
Elate というリアルタイム OS 上で動作する高速 Java 実行環境を
共同開発した
アスキーの
山下氏の講演に行って来た。まあ、実際のところ、この Elate と
いうのは去年から知ってたし、実は全く期待もしてなかった(今までもこういった試みは
悉く破綻して来ているのを見てきている訳だから。本当に良いものだとしても売れるかど
うかは別問題だし、こういったものは得てして売れないものだ)んだけど…。
本当は西氏の講演を聴こうと思ってたんだけど、行けなかった。というのも昨晩は眠りが
浅く何度も目覚めたりを繰り返し、結局8時に起きだしてうだうだしてたんだけど、あと
1時間というつもりでベッドに倒れ込んだのがまずかった。気づけば11:00を過ぎている…。
西氏の講演は10:30からだと言うのに。とは言え突然午前中に変更になったそうだし、更に
30分だけの予定というから大したことは話さないんだろう、多分メインは午後の山下氏
じゃないかと思ったりもした。正直言ってあんまり期待していなかったのも事実だけど、
そんな訳で一気に気力も失せ、やりたいことも沢山あるし家でだらだら凄そうと思った。
#去年は MSX 関連としては初の西氏の講演ということで勢い込んで行ったけど…
それなのに突然気が変わって出掛けることにした。場所は秋葉原。会場は廣瀬無線本社の
特設会場。
MSX 電遊ランドという催しをやってて、ある程度はまだ興味があったんだけど、
最近どうも自分の嫌いなタイプの同人世界がメインに展開されて来てて、しかもあんまり
進展ないから最近はどうも…。同人じゃなくて
パッケージ販売のソフトを開発してる人達
の発表もあったけど、結局やってることは同人だし、元々やろうとした人達だって会社を
私物化してるんじゃないかって感じで、お話にならない。やっぱり今年も唯一注目に値し
たのは
似非職人工房さんだけ。今度は似非 PLD システムになってた…。全音源に VDP 迄
が全てハード的にエミュレートとされている。しかも完璧に。MSX は本当に電源と CPU、
I/O だけになってる。これで CPU その他が
定義できれば…。期待は高まる。
#ちょっとメモ。PLD と言えば、
Altera 社の CPLD、
Xilinx 社の FPGA なんだそうだ。
#後者は何となく聞いたことありそうな…。社内から検索かけてみるか…(をい
#でも似非 PLD システムでは CPLD/FLEX 10K30A-3 を使用しているとのコト…
山下氏と言えば MSX を作った人として、ある人達の中では有名。何でも当時は PC-6600
シリーズ等にも関わっていて、西氏に連れられてシアトルはマイクロソフトで各機種に合
わせた BASIC を書いたりして、ゲイツちゃんのお手伝いをしていたんだそうだ。その後
は、ノート PC に広く採用されている PCMCIA、所謂 PC カードの策定に当たっていたら
しい。Windows95 になって PnP (プラグアンドプレイ)という言葉が異様にもてはやさ
れていたが、そんなの MSX じゃスロット機構で既に実現してた考え方じゃないかと思っ
ていたものだが、PCMCIA の企画作りの際にも PnP じゃなきゃダメだと言ってくれたらし
い。でもってその時に、MSX のスロット機構の考え方を持ち込んだんだって。要するに何
をやるカードかという情報を通信するピンを設けたってことみたいなんだけど。
テクハンのカートリッジバス信号線表その他見たって分かんないや。やっぱハードはさっぱり
…(涙
後は、Amiga が出るという情報を聞いて、それを丁度その当時企画策定前にあった MSX2
に仕立てられないかというので、
コモドール社を訪れたこと等も話してくれた。その後は
ずっと MSX BASIC に携わっていたということで、正に MSX の親的存在なのだ…と実感。
それはともかく午前中の西氏の講演のメインは、Elate 上で動く ASCII 公式の MSX エミュ
レータの発表だったようだ。一体どこに作らせてるのかはさっぱり不明だが、社員全員が
反対してもやるという西氏の態度は、また会社を私物化しようとしてるんじゃないかとい
う危惧をすら抱かせ兼ねないと思うのは考えすぎだろうか。恐らくは強調して言っただけ
なんだろうとは思うが…。やっと ASCII がビジネス中心に動こうとしている中で、MSX
愛好家達がこぞって西氏をまた悪い癖に立ち返らそうとしてるんじゃないかと思うと、や
や気が重い。って、そうでもないか。というか、どうでもいいんだけど…(ぉぃ
intent というのは、Elate という OS としての性格を隠すための戦略的製品名のようだが、
結局こいつは、デバイス組み込み用途やホスト OS 上でのゲスト OS として動作する仮想
CPU ということなんだそうだ。そして Java その他のように VM を用意してインタプリタ
を通った後に動作するんじゃなく、VP (仮想プロセッサ)の言語として全て準備しておき、
実行時にそれらをネイティブコードにコンパイル(Elate ではトランスレートというんだ
そうだ)してから実行させることで、異 CPU での同一動作を保証するという。Write Once,
Do Anywhere といえば正に Java そのものという感じがするが、その辺りの考え方が今ま
でとは違うということらしい。実際これを作った人は、当初、マクロアセンブラのマクロ
をそれぞれの CPU 毎に定義してやることでこれを実現することを考えていたんだそうだ。
それが結局 VP を定義してやろうということになったらしい。VM ではなく、VP。そこの所
の発想は確かに違う。しかし仮想とは言え、自分で好き勝手に CPU をデザイン出来る訳だ
から、例えばレジスタは65000個も用意したらしい! 後は基本的に 32bit RISC がベース
だから、x86 を除けば殆ど現在主流となっている CPU のコードセットにトランスレートす
るのは容易いという。x86 みたいな CISC の場合は、レジスタの値をメモリを使って保存
するといったやり方で対応するという。他にも、モジュール構造だとか、プログラム内か
らの呼び出しによるオンデマンドなトランスレート、ガベージコレクタによるメモリ内の
不要モジュール消去なんかの説明があったが、それは説明ページでも見れば良いことだ。
また現在 Amiga のライセンスを保有している
Amiga 社がこの Elate を今後
積極的に採用し、既存の豊富な Amiga アプリケーション群を移植し、更に今後 Elate 自体を Amiga と
称して売っていくらしい。確かにこれであれば、Elate 用に書いたソフトは全て Amiga 用
となることになる。Amiga 曰く、これを「世界 Amiga 化計画」と呼んでいるんだそうな。
現在アスキーとしては単体での販売は考えていないそうだが、Amiga はこれを販売している。
興味があれば今のところ、そこから買うしかないようだ。とは言え、公式エミュレータが出
るのなら、当然それと共に、各 OS 版の Elate というか intent(?) を出して来るとは思う
んだけど…。とは言え、社としてやってるというよりは、西氏の個人的趣味の延長って気も
するからどうなることやら…。
#ただ本当に個人的趣味だけなら、2年も続けてこれだけの金を出して来たのは…。まさか
#西氏の自腹? でも社名も出して来てる訳だから…。まさか社費を不正に拠出させたりし
#てないですよね?(苦笑
#しかし Amiga って、
あれ
からこんなになったとは知らなかった…。これも時流か…
因みに Elate 上での Java は JDK の JIT でコンパイルされたものよりも早く動くという
実行結果をデモってた。勿論うまくいくことばかりじゃないというけど、今まで誰もこんな
話は信用しなかったそうだ。で、
モトローラが携帯電話への採用を決定し、先日の JavaOne
でも正式に
SUN に
Java としての互換性の
お墨付きを貰ったことを発表し、漸く各 OS メー
カーなんかが注目するようになったんだそうだ。但し、Elate の OS としての部分じゃなく
あくまで Java の実行環境としてのようだけど…(ちょっと違うか(ぉぃ
質疑応答が始まった直後は誰も名乗りを上げなかったし、聞きたいことも沢山あったので、
取り敢えず質問。まあ MSX に関する質問なんて他に誰かがやるに決まってるから…と、純粋
に Elate に関する質問だけしてみる。但し、初っ端から3つもまとめて…(いつも我の質問
はこんな感じです…)。質問した内容は次の通り。
(1) 3DNow! や MMX のような CPU 独自のフィーチャーにはどうやって対応するのか
(2) 組み込みデバイス分野では WindowsCE やそれこそ Java 等競合が多いが、どうやって
入り込むのか
(3) トランスメタの CPU には対応予定はあるのか(アプローチが丁度反対だからね)それに対する山下氏の回答の要旨は次のようなものだった。
(1) 基本的にどの CPU を使うかを意識せずコーディング出来るのがメリットだからトランス
レータが判断することになるだろう。但し汎用性を欠くことを覚悟の上で、ソース内に
ネイティブコードをインラインで(?)記述することも可能とのこと
(2) SUN とはうまくやっているし、競合は何故かない。OS として Elate を売らず intent と
してるのも折角 Elate に注目し始めた各 OS メーカーに売る為なんだそうだ。この辺は
色々ありそうなので、あんまり突っ込まなかった。まだ大手は見向きもしていないか、或
いは今後に期待してるのか(ソニーみたく)、或いは…。但し割と順調のようだ。個人的
にはちょっと気になるが
(3) 現在の所は分からないという。互換性に関して、Elate はソフトウェアから異 CPU への
アプローチだし、クルーソーは逆に CPU からのアプローチ(あれは CPU の挙動を定義
して他の CPU をエミュレート出来るからね。今は商業的理由から x86 エミュのみだけど)
だけど、トランスメタの CPU 定義を VP に最も近くなるようにすれば…という考えはある
にはあるようだその後は省略。例の SmartVision Pro for USB がどこにも売ってなかったのがせめてもの救いか…(?)
無事帰宅。結局今日も一日何も出来なかった…(呆然) オペレーションズリサーチの勉強も
しないといけないんだけど…。というか、結局何も始まっちゃいない…。
因みに昨晩は、各種ゲーム体験版や、ゲームコンソールエミュレータなんぞ入れたりやって
みたりしてました…。やっぱ速いマシンは違うわ…(謎)