- 締切済み
エミュレーターとシュミレーターの違い
エミュレーターとシュミレーターの違いが分かりません。 どなたかよろしくお願いします。
- みんなの回答 (10)
- 専門家の回答
みんなの回答
- neko-ten
- ベストアンサー率55% (1287/2335)
>jjon-comさん 実際、わたしの内容自体は定義原理主義に近いです。 なので、jjom-comさんが疑問を呈していらっしゃるのももっともであろうかと。 質問者さんにとっては「じゃーどっちなんだよ!」ってなってしまうので、大変恐縮でもありますが・・・orz >物理的な模倣を行う機械科学分野での定義からすると, >実機が存在しない Java VM や .NET Framework などは >エミュレータとは呼べない,というのがやはり正当な解釈なのですか? 正当、っていいかたはおこがましいですが・・・ 実際のPVMに関しては、すべて仮想ではあるものの動作をモデル化したものの集合体ですから、シミュレータにすることになるはずです。 ---------------------------- 私自身がこういう考えをしてるってのは、スマホアプリ開発が原因だったりします。 シミュレートする場合は、コードは一緒でもビルド別にしないといけないのでその原因はなんだろーっていうと、モデル化によるものだったりするんですよね・・・ エミュレータは基本的に実機と同じビルドで動きますから、やっぱり違うんだなーと思った次第です。 >ということで,そういうものなんだと言われれば,そうなんですねと言うしかないのでしょうが,私はこの感覚がしっくりこないんです。 たぶんモデル化をがっつりしたファミコンシミュレータ(エミュレータ)があったとすれば、そのままではソフトウェア動かずに、再度ビルドしないとだめだとか、そういった制限が出てくると思われます。 モデル化するってことは本来実装していたインタフェイスを置き換えますし、同じAPI呼び出しでは正常に動かなくなると思われます。 もしすべての呼び出しを実装してしまえば、それはもうモデル化してませんから、エミュレータってことに。
- jjon-com
- ベストアンサー率61% (1599/2592)
回答ありがとうございます。 > neko-tenさん IT用語事典とかWeb検索結果など多少は目を通していますので, 私のような説明をしている例はまったくといっていいほど無く, 皆さんのような解説で占められていることは承知しています。 ANo.3などは目的志向で説明している例のように思うのですが, エミュレータとシミュレータの説明が明確に線引きされて いないように思えたので,私が考えてみたことのある 整理の仕方を紹介してみたかったというのが主眼です。 私の脳裏にあるイメージを明示するために, 私のイメージとは差がある箇所だけをあえて抜き書きしました。 人によっては, 反対の意見が寄せられること=人格に対する攻撃, と即座に結びつけてしまう人もいる中, 冷静かつ分かりやすい応答をいただきました。ありがとうございます。 ---------------- 私としては自説にこだわりつもりもありませんし, 質問者の立場をないがしろにして応酬を続けるつもりもありません。 実は私自身ずっと,皆さんと同じような理解で納得してきたのですけれど, 解釈を変えてみてもいいかな,と思ったきっかけが, http://ja.wikipedia.org/wiki/エミュレータ_(コンピュータ) にも登場していたりします。 ご指摘のとおり,私はコンピュータ分野だけのイメージしかないのですが, 物理的な模倣を行う機械科学分野での定義からすると, 実機が存在しない Java VM や .NET Framework などは エミュレータとは呼べない,というのがやはり正当な解釈なのですか? > モデル化がしてあるのであれば、 > それはやはりシミュレータとなるんでないかね。 ということで,そういうものなんだと言われれば,そうなんですねと言うしかないのでしょうが,私はこの感覚がしっくりこないんです。
- neko-ten
- ベストアンサー率55% (1287/2335)
お、回答引用がされているので、それに対しての見解 ・本質 本質を問うなら、使い方で決めてしまうほうがよろしくないと思う。 それで言ってしまえば、同じ作り方をしても使う人が「これはシミュレータだ」と言ってしまえばシミュレータになるし、エミュレータも然り。 そもそも、エミュレータ・シミュレータの概念自体はコンピュータ以前の話で、物理的な模倣を行う機械科学分野で定義されてます。 シミュレータではモデル化を行う際に一定値以下の誤差などを無視しますから、厳密にエミュレータとして使うことができない場合もあります。 ただ、これがコンピュータ分野になってくるとあいまいで、jjon-comさんのおっしゃるように目的で決められているってのも事実だと思います。 これがやはり慣例的用法であって、そういった利用があるから今回の質問があるのではないかな?と思ってます。 なんで、やはり「使い方で決まる」見解に対してはNOと言いたいかな・・・。 >仮定の例として,ある仮想環境の内部ではそうとう簡略化された実装がなされているのに, >なぜかWindowsソフトやファミコンソフトが問題なく動いてしまうと仮定してみてください。 >それはやっぱりエミュレータでしょう? モデル化がしてあるのであれば、それはやはりシミュレータとなるんでないかね。 PCをエミュレートするのであれば、わざわざモデル化する必要がない上、誤差を無視することはないから普通は単純モデル化はしないし・・・ なんで、前提としてそういったものはほとんど存在しないんではないかね。 結局、用途で決めるとしょっぱなの 「じゃ、違いはどこにあるのかい?」 に戻ってしまうんじゃないかな。 #ま、それでも問題なくつかわれているわけですけどね。
- jjon-com
- ベストアンサー率61% (1599/2592)
階層図で説明します。 まず,次のような仮想環境がシミュレータです。 ――――――― 仮想環境=目的 ――――――― 基盤環境 ――――――― ドライブシミュレータ,フライトシミュレータ,気候シミュレータ,未来予測シミュレータなど,すべてそれが目的となっています。 そして,次のような仮想環境がエミュレータです。 ―――― 目的 ―――― 仮想環境 ―――― 基盤環境 ―――― > 対象の動作やロジックを完全にコピーするものをエミュレート (ANo.5) > エミュレータは内部動作まで模倣して動作します。(ANo.1) Macintosh上でWindowsソフトを動かしたい, Windows上でファミコンソフトを動かしたい, その目的を実現するために 内部動作やロジックの完全な模倣が必要であるならそうするだけの話であり, それはエミュレータの定義の本質ではないでしょう。 仮定の例として,ある仮想環境の内部ではそうとう簡略化された実装がなされているのに, なぜかWindowsソフトやファミコンソフトが問題なく動いてしまうと仮定してみてください。 それはやっぱりエミュレータでしょう? > コンピュータ科学においては、コンピュータをシミュレートすることを > エミュレートって呼んでますから、大幅な違いはありません。(ANo.5) Windows PCを仮想環境で実現してWindowsの学習をしたい, というのが目的なら, それが内部ロジックを完全に模倣していたソフトだとしても WindowsPCシミュレータと呼ぶべきものだと思います。 逆に,非Windowsパソコン上でWindowsソフトを動かしたい,というのが目的であり, そのためにその間を取り持つWindows代わりの仮想環境が必要だ,というのなら, それを実現するための内部ロジックが完全さからは程遠いものだったとしても, 結果的にWindowsソフトが問題なく動いているのであればそれは そのWindowsソフト動作用のエミュレータと呼ぶべきものだと思います。 ですから,シミュレートをエミュレートとは呼ばないんじゃないですか。 もちろん仮想環境としては大幅な違いはない(というか同じ)ですから, 実機の再現度が高いシミュレータソフトは,エミュレータとしても使えるでしょう。
- mrkato
- ベストアンサー率47% (1006/2119)
ちょうどgoo側で端末エミュレータの広告が貼られてますし。 http://www-06.ibm.com/software/jp/network/hacp/ この「コンソールをパソコンアプリに置き換え」や、 製品基板のCPUをICEインサーキットエミュレータで代え、 プログラムと入力状況を取り出しながら動作検証するなど、 「実物が伴う前提」が、エミュレータ。 PXE端末もハード透過接続だからエミュレータになるのか。 ハードも全体が仮想マシンで、入出力大きく変換して実行するとか、 出力する側(製造機械の動きとか)が仮想で設けた物が、 シミュレータ。
- neko-ten
- ベストアンサー率55% (1287/2335)
コンピュータ科学においては、コンピュータをシミュレートすることをエミュレートって呼んでますから、大幅な違いはありません。 シミュレートの一部にエミュレートが含まれるってことですね。 実際には、対象の動作やロジックを完全にコピーするものをエミュレート、 入力と結果を基にロジックを組み立て、入力に対する結果は同じでもロジックは違うのがシミュレートです。 このシミュのロジック組み立てをモデル化といって、ざっくり言えばこれがあるかないかで変わってきます。 たとえば、「フックがついていて、わっかを場所Aにおくとわっかにフックを引っかけて場所B移動する機械」があったとします。 エミュレートを行う機械は、可動部分を動かしてフックを作り、それを使って全く同じ行動を行います。 シミュレートは、フックは作らずに移動するためにとりもちを使います。(跡が残るとかは無視します) どちらも、試行結果は100%成功と仮定します。(失敗した場合は試行から取り除けばよい) 結果は、どちらもAにおいたわっかはBに移動します。 しかし、実際に行う内容はかなり違います。
- gungnir7
- ベストアンサー率43% (1124/2579)
言葉が似ているだけで、役割は全然違います。 シミュレーションモデルを再現してみせるのがシミュレータ。 一方、エミュレータは稼働している実機を再現しなければ意味がありません。 昔のファミコンがWindows上で動くソフトなんて沢山あります。 こういうのがエミュレータになります。 シミュレータは計算上の架空の世界を再現するための装置、 エミュレータは現存する実機を再現するための装置です。
全く違います。 エミュレーション http://e-words.jp/w/E382A8E3839FE383A5E383ACE383BCE382B7E383A7E383B3.html シミュレーション http://d.hatena.ne.jp/keyword/%A5%B7%A5%DF%A5%E5%A5%EC%A1%BC%A5%B7%A5%E7%A5%F3 これらを行うシステムですね。 かいつまんで言うと、エミュレーターは 本来その機械で動作しないものを、動作可能にするシステムの事です。 例:WindowsPCでファミコンを動かす など シミュレーターは疑似体験装置です。 主に電車や飛行機など乗り物の操縦訓練で用いられることが多いです。 この場合、操縦かんは本物とほぼ同じものを用意しますが、走行は映像上で行います。 実際に乗らずにシミュレーターを使うことで、事故の危険性が無く訓練が行えます。 ちなみに、東京の葛西にある地下鉄博物館で地下鉄シミュレーターがあります。
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
×シュミレータ ○シミュレータ エミュレータは何かの真似をするもの。 シミュレータは仮想的に実行するもの。 現実世界において、この2者はたいして違いがないです。
- ok-kaneto
- ベストアンサー率39% (1798/4531)
シミ「ュ」レータは、外部から見たある特定の部分だけをモデル化して再現するのに対し、 エミュレータは内部動作まで模倣して動作します。 http://d.hatena.ne.jp/itog/20110209/1297220706