• 169月

    特定プラットフォーム用のアプリがそのまま他のプラットフォーム上で
    動くようになるという「QuickTransit」なる技術が発表されたようで。
    http://www.itmedia.co.jp/news/articles/0409/15/news012.html

    数日前に情報は流れてたんですが、信憑性を確認してから、と
    思って、数日、寝かしておきました。(笑)

    デモでは、Quake IIIのLinux版がPowerBookで動いたそうで、
    仮想マシン上でネイティブ環境の80%の性能を発揮できる
    という「謳い文句」のようです。

    Itanium版、Opteron版、x86版、Power/PowerPC版があって、
    当初はサーバやメインフレーム市場向けに、そして今後は
    コンシューマー市場にも進出する予定とのこと。

    内容の詳細は分かりませんが、見る限りではTransmetaの
    Code Morphing Softwareのようなもののように思われます。

    おそらく一度翻訳した部分はキャッシュしておいたり、
    良く使われる部分は、あらかじめライブラリ的に用意しておき、
    翻訳の処理を、できるだけ少なくする工夫をしてるのではないかと。

    個人的には、以前からこうした、「インタプリタ」的なエミュレーションではなく、
    「コンパイラ」的なエミュレーション手法が実現できないものかなぁと
    思ってるんですよね。

    要は、別のプラットフォームのプログラムを、あらかじめ
    「エミュレーション・コンパイラ」(とでも呼ぶもの)で事前にコード変換しておき、
    変換済みのバイナリを生成しておくという仕組みです。
    逆アセンブルとクロスアセンブルを組み合わせたようなものですね。

    このコード変換作業は、少々時間がかかっても、一度しか
    やらないわけですから、我慢もできるでしょうからね。

    完璧に変換できてれば、ネイティブなプログラムとほぼ遜色ない
    速度で動作するはずです。
    もちろん、実行してみないと変換しきれない部分は「そのまま」に
    しておいて、実行時にエミュレーションしても構いません。

    それに、これは一般ユーザをターゲットにするだけでなく、
    ソフトウェア開発側で使用することも想定できます。

    例えば、Windowsでのみ開発したソフトウェアをコード変換して、
    Macの実行バイナリを生成し、これを販売しても良いわけです。
    こうすれば、開発コストも削減できますからね。

    また、ユーザ側でエミュレーションするわけではないですから、
    出荷前に変換したバイナリで十分な動作テストもできます。

    細かな変換設定などを用意すれば、一部だけをネイティブコードと
    差し替えたり、変換の仕方を「デバッグ」したりできますし。

    これって、なかなか良いアイデアだとは思うんですが、
    とても自分が関わりたいとは思いませんけどね。(^^;

    Filed under: PC
    2004/09/16 1:53 pm | 2 Comments

2 Responses

WP_Lime_Slice
  • KOu Says:

    すげーものができましたね。VirtualPCみたいな単なるエミュレーターではないっぽいですね。(詳しくは分かっていない)

    各OSとレンダエンジンの表現をエミュレートしてくれるブラウザってのが、検証用でほしいです。この機能を使って、様々なOSのブラウザをMac上で動かせるといいんですけどねぇ。

  • MacBS Says:

    KOuさん、コメント、ありがとうございます。

    VirtualPCも技術的には素晴らしいものですが、今回のは仕組みからして速度面で有利でしょうね。

    各OSとレンダエンジンのエミュレートってのは、意外に難しい課題かも。
    QuickTransitあたりは処理の高速化のためにBIOSコールのような類いのものは、
    動作OSのものを流用(置き換え)することも考えられますから、
    元のOS上と全く同じ表示にはならないかもしれませんからね。

    そういう用途には、やっぱりVirtual PCのほうが良いかもしれません。
    ちなみに、KOuさんとこのブログは、Windowsでも全く問題なく綺麗に表示されてますよ~。