パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Lisaエミュレータ作者、Ray Arachelianインタビュー@Low End Mac」記事へのコメント

  • by Anonymous Coward on 2007年04月02日 12時09分 (#1136151)
    色々なエミュレータがありますが作り方の概念とかの本がありましたらお願いします。

    タイマーで切って、命令やらハードの処理をやっていくのだと思いますけど
    色々と高速化ってあると思うのです。興味があるのでできましたらお願いします。
    • by Anonymous Coward on 2007年04月02日 14時33分 (#1136208)
      エミュレータを作る上でネックになるのは、Ray Arachelian氏のお話にもありますがタイミング合わせですね。
      当たり前の話ですけど、実機の各チップは並列に動作しています。場合によっては、わずかにそのタイミングが狂うだけで正常動作しなくなるものもありますので。
      この辺り、いかに手を抜けるか(コーディングの手抜きではなく、タイミング合わせの)が高速化に大きく関わってくるはずです。
      ただ、実機の動作を再現することを目的としたエミュレータは実機以上の速度を出す必要はありませんから、常に速度を求められるVMwareのようなものよりはずっと楽だと思います。
      親コメント
    • by kazooya (6111) on 2007年04月03日 0時00分 (#1136387) ホームページ
      いわゆるエミュレータそのものではなくてVM全般についての本だけど、結構参考になると思います:
      Virtual Machines: Versatile Platforms For Systems And Processes
      http://www.amazon.co.jp/Virtual-Machines-Versatile-Platforms-Architect... [amazon.co.jp]

      # 日本語で読みたい人っていますか?
      親コメント
    • by Anonymous Coward on 2007年04月02日 12時54分 (#1136168)
      具体的な本はしらないんだけど構造的には、
      インタプリタや OS の仕組みがそのまま適用できるはずなので、
      その手の参考書が使えると思う。

      CPU までエミュレートするタイプの完全なエミュレータの場合、
      多分インタプリタと構造的には同じはず。
      従って高速化の技術も JIT とかインタプリタのそれがそのまま使えるはず。

      エミュレートする環境とエミュレータを乗せる環境で CPU が同一である場合、
      例えば VMWare 等は I/O 周りとか主にハードウェアの差異だけをエミュレートしてるらしいけど、
      これは、特権違反、バスエラーやアドレスエラー等の割り込みをフックして
      エミュレートルーチンに飛ばしてるはず。
      これはどちらかと言えば OS の構造に近いんだと思う。
      親コメント
    • by Anonymous Coward on 2007年04月02日 13時39分 (#1136186)
      おすすめできる本は無いけど、既存のエミュレータのコードを読んでみると 良いかもしれない。mame,mess,snes9xのようなゲーム機のエミュレータはかなり 完成されているし、それなりにうまくうごく。 Web上だとこの辺 [infoseek.co.jp]だろうか。あとinfonesの人のところ。
      親コメント
    • 第一人者のMarat氏 [komkon.org]のページはどうでしょうか。
      Z80,6502のソースコードもあり、大変参考になります。
    • MAMEからCPUのコードを拝借してBIOSファイルを食わせる(0番地を指定して走らせる)とそれなりに動くかも。大変なのはそれから先、デバイス系統でしょうか。
    • きっともうすぐ「萌えるえみゅの作り方」ってのが出るから待ってるとよいよ。

ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家

処理中...