シミュレーションとエミュレーションの一般的な意味を理解していますが、ほとんどの場合、それらについて混乱します。既存のハードウェア/ソフトウェアを模倣するソフトウェアを作成すると仮定すると、それを何と呼ぶべきですか?シミュレータかエミュレータか?
プログラミングの違いを誰かが説明できますか?
おまけ:これら2つの用語の英語の違いは何ですか?(申し訳ありませんが、私はネイティブスピーカーではありません:))
シミュレーションとエミュレーションの一般的な意味を理解していますが、ほとんどの場合、それらについて混乱します。既存のハードウェア/ソフトウェアを模倣するソフトウェアを作成すると仮定すると、それを何と呼ぶべきですか?シミュレータかエミュレータか?
プログラミングの違いを誰かが説明できますか?
おまけ:これら2つの用語の英語の違いは何ですか?(申し訳ありませんが、私はネイティブスピーカーではありません:))
回答:
エミュレーションは、既存のターゲットに一致するように、外側から観察可能な動作を模倣するプロセスです。エミュレーションメカニズムの内部状態は、エミュレートするターゲットの内部状態を正確に反映する必要はありません。
一方、シミュレーションでは、ターゲットの基本的な状態をモデル化します。良いシミュレーションの最終結果は、シミュレーションモデルが、シミュレーションしているターゲットをエミュレートすることです。
理想的には、シミュレーションを調べて、元のターゲットを調べた場合に見られるプロパティを観察できる必要があります。実際には、パフォーマンス上の理由からシミュレーションへのショートカットがいくつかある可能性があります。つまり、シミュレーションの一部の内部的な側面は、実際にはエミュレーションである可能性があります。
MAMEはアーケードゲームエミュレーターです。Hypertermは(あまり良くない)端末エミュレータです。望ましいエミュレートされた動作を実現するために、アーケードマシンや端末を詳細にモデル化する必要はありません。
Flight Simulatorはシミュレータです。SPICEは電子シミュレーターです。彼らは可能な限りターゲットの細部をモデル化して、ターゲットが実際に何をしているのかを表しています。
編集:エミュレーションの目標は、エミュレートしているオブジェクトを置き換えることができることであると他の回答が指摘しています。それが重要なポイントです。シミュレーションの焦点は、ターゲットの内部状態のモデリングにあり、シミュレーションは必ずしもエミュレーションにつながるわけではありません。特に、シミュレーションはリアルタイムよりもはるかに遅く実行される場合があります。たとえば、SPICEは実際の電子回路の代わりにはなりません(電気回路をSPICEシミュレーションに完全にインターフェースする何らかの魔法のデバイスがあったとしても)。シミュレーションシミュレーションは必ずしもエミュレーションにつながるわけではありません-
フライトシミュレータでAからBに移動できる場合は、フライトシミュレータになります。
エミュレータは、実際に使用するためにオリジナルを置き換えることができます。
Virtual PCはPCをエミュレートします。
シミュレーターは、研究と分析のためのモデルです。
エミュレータは常にほぼリアルタイムで動作する必要があります。常にそうとは限らないシミュレーターの場合。地質シミュレーションでは、1000年/秒以上の処理が可能です。
シミュレーション= 分析と研究用
エミュレーション= 代替として使用する場合
シミュレーターはモデル化する環境ですが、エミュレーターは元のデバイスまたはシステムと同じように使用法を複製するものです。
シミュレータは、シミュレートしている何かの活動を模倣します。シミュレートされているものと同じであるように見えます(状況によっては、この「見えます」で多くのことが起こります)。たとえば、フライトシミュレータは、ある場所から別の場所に移動するわけではありませんが、ユーザーには実際のフライトであるように "見えます"。
一方、エミュレータは、実際には「エミュレートされているものと同じことを行います。そうすることによっても、同じことをしているように見えます」と言います。エミュレータはエミュレートされるものを模倣するために異なるプロトコルのセットを使用する場合がありますが、結果/結果は常に元のオブジェクトと同じです。たとえば、EMU8086はコンピュータ上の8086マイクロプロセッサをエミュレートします。これは明らかに8086(= 異なるプロトコル)では実行されていませんが、その出力は実際の8086が提供するものです。
それは焦点の違いです。エミュレーター1は、システムが内部でどのように機能するかに関係なく、システムの動作を再現することに焦点を当てています。Simulators 2は、システムのコンポーネントのモデリングに焦点を当てています。主にシステムの動作を気にするときはエミュレータを使用し、システムの動作を気にするときはシミュレータを使用します。
彼らの一般的な英語の意味については、エミュレーションは「品質や行動において他の人と同等かそれを超える努力」であり、シミュレーションは「行動、外観、または特性をモデル化、複製、複製すること」です。大した違いはありません。エミュレーションはæmulusの「努力、競争」から来ており、表面レバーの類似を示唆する「模倣」と「イメージ」に関連しています。「シミュレーション」から来ているsimilisおそらく深い合同ことを示唆している単語「似ては、」同じように、「のような」。
参照:
エミュレータとシミュレータは比較できないと思います。どちらも何かを模倣していますが、推論の同じ範囲の一部ではなく、同じコンテキストで使用されていません。
つまり、エミュレータは元の機能の一部をコピーするように設計されており、実際の環境でそれを置き換えることもできます。シミュレーターは、オリジナルの機能をコピーするように設計されているのではなく、オリジナルに似ているように見えるだけです。オリジナルの機能がなければ、シミュレータは実際の環境でそれを置き換えることはできません。
エミュレータは十分なので、それがそのデバイスを模倣何かの近くにある本物に置換することができます。たとえば、回路をROM(読み取り専用メモリ)回路のように動作させたいが、必要な内容になるまでコンテンツを調整したい場合などです。エミュレートしたいROMと互換性のある物理的および電気的インターフェイスを備えたROMエミュレーター、ブラックボックス(CPUベースの可能性が高い)を使用します。エミュレーターは、実際のROMの代わりにデバイスにプラグインされます。マザーボードで作業しても違いはわかりませんが、エミュレートされたROMの内容を簡単に変更できます。そうでなければ、エミュレータはマザーボードのコンテキストで実際のものとまったく同じように動作しますが(実際の内部モデルのために少し遅くなる可能性があります)、マザーボードのコンテキストからは、デザイナーにのみ表示される追加の機能(書き換えなど)があります。したがって、エミュレーターの定義は次のようになります。
シミュレータは、別の思考の文脈で使用されている、など例えばA平面シミュレータ、車のシミュレーター、シミュレーションはに関連する通常ものだけ現物のいくつかの側面の世話をする人間がそれを感知し、制御する方法。シミュレーターは実際のものの機能を実行せず、それに代わることができません。飛行機のシミュレーターは、誰かを飛ばしたり運んだりしません。それはその目的ではありません。シミュレーターは機能することを意図していませんが、通常の目的以外の目的(たとえば、全エンジンの故障などの異常な状況を含む)のために、パイロットに実際の物と同じように見えます。したがって、シミュレーターの定義は次のようになります。元のように、人間のように、ある程度拡張できますが、実際の使用のために置き換えることはできません。さらに、パイロットはシミュレータがシミュレータであることを知っています。
ROMは人間と相互作用していないため、ROMシミュレータは表示されないと思います。また、飛行機は現実の世界で同じ機能を実行する代替品を持つことができないため、飛行機エミュレータは表示されません。
私の見解では、エミュレーターまたはシミュレーター内のモデルは何でもかまいません。また、元のモデルと類似している必要はありません。ROMエミュレータモデルはハードウェアではなくソフトウェアである可能性が高く、MS Flight Simulatorはそれ以上のソフトウェアになることはできません。
この両方の用語の比較は、内部モデルに違いをもたらす現在選択されている回答(Toybuilderから)と矛盾しますが、私の提案は、実際の世界で実際の機能を実行するために偽物を使用できるかできないかということです(確かに受け入れられた範囲まで)。
プレーンシミュレータは、プレーンの一部ではない地球、太陽、風などもシミュレートする必要があることに注意してください。そのため、プレーンシミュレータは、プレーンの一部の側面と環境を模倣する必要があります。飛行機はこの実際の環境では使用されないため、トレーニングルームで使用されます。
これはオリジナルのみをエミュレートするエミュレータとの大きな違いであり、その目的はエミュレートする必要なくオリジナルの環境で使用されることです。飛行機のコンテキストに戻ります...飛行機エミュレータは何でしょうか?たぶん、2つの空港を接続する列車-実際には2つの飛行機のステップ-乗客を乗せて、スチュワーデスを搭載し、車内は実際の飛行機のキャビンのように見え、船長は「私たちの高度は現在10 kmで気温は目的地は24°Cです。」その利点は見づらい、うーん...
結論として、エミュレーターは実際に機能することを意図したものであり、シミュレーターはユーザーをだますことを意図した偽物です。
簡単な説明。
PC(Windowsを実行中)をMacに変換する場合は、次のいずれかを実行できます。
(1)MacテーマをWindowsにインストールするだけです。そのため、PCはMacに似ていますが、実際にはMacプログラムを実行できません。
(SIMULATION)
(または)
(2)Macのように実行するようにPCをプログラムできます(これが可能かどうかはわかりません:P)。これで、Macプログラムを正常に実行して、Macと同じ出力を期待することもできます。
(EMULATION)
最初のケースでは、Macを体験できますが、Macと同じ出力は期待できません。
2番目のケースでは、Macと同じ出力が期待できますが、それでもPCのみであるという事実は変わりません。
シミュレータとエミュレータの違いを理解するには、シミュレータが実際のデバイスの動作を模倣しようとすることに注意してください。たとえば、iOSシミュレータの場合、実際のiPhone / iPadデバイスの実際の動作をシミュレートします。ただし、シミュレータ自体はMacにインストールされているさまざまなライブラリ(QuickTimeなど)を使用してレンダリングを実行するため、効果は実際のiPhoneと同じように見えます。さらに、シミュレーターでテストされたアプリケーションはx86コードにコンパイルされます。x86コードは、シミュレーターによって理解されるバイトコードです。逆に、実際のiPhoneデバイスはARMベースのコードを使用しています。
対照的に、エミュレータは実際のデバイスの動作をエミュレートします。エミュレーターでテストされたアプリケーションは、実際のデバイスで使用される実際のバイトコードにコンパイルされます。エミュレーターは、バイトコードを、エミュレーターを実行しているホストコンピューターが実行できる形式に変換することによって、アプリケーションを実行します。
シミュレーションとエミュレーションの微妙な違いを理解するために、ナイフで遊ぶのは危険だと子供に納得させようとしているところを想像してみてください。これをシミュレートするために、あなたはナイフで自分を切り、痛みでうめきます。これをエミュレートするために、あなたは実際に自分を切りました。
エミュレーターは、エミュレートされたシステムが受け入れるすべての有効な入力を受け入れ、同じ出力または結果を生成するシステムのモデルです。したがって、ソフトウェアがエミュレータであるのは、エミュレートされたシステムの動作を正確に再現する場合だけです。
2つの用語の区別は少しあいまいです。「エミュレーター」が組み込みシステムのデバッグを可能にするハードウェアの一部である世界から来ています。また、PCプラットフォームをデバッグするためのICE(In Circuit Emulation)機能を使用できる製品を思い出してください。「エミュレーション」という用語の使用は、ハードウェアの動作をシミュレートするソフトウェアのやや誤った名称であることがわかりました。
エミュレーションという用語の現在の使用に対する私の正当化は、機能を「増強」する可能性があり、システムの動作の「合理的な」近似にのみ関係しているということです。
ICE:(In Circuit Emulation)実際のプロセッサの代わりにボードに差し込まれるハードウェア。実際のプロセッサが存在するかのようにシステムを実行できます。通常、これらにはプロセッサのバリアントがあり、実際にソフトウェアをグルーロジックで実行して、ユーザーがハードウェア制御下で実行とシングルステップを中断できるようにします。ロギング機能を提供するものもあります。最近のほとんどのプロセッサ開発システムでは、ICEタイプのエミュレーションがJTAGエミュレーションに置き換えられています。JTAGは専用シリアルリンクを介してプロセッサと通信し、すべての実行はボードに搭載されたプロセッサによって実行されます。
ソフトウェアエミュレーター:0x86エミュレーターは、0x86アセンブリ言語を実行できることにのみ関係しており、SPECIFIC 0x86プロセッサーのサイクルごとの正確な動作モデルを提供しません。ボフスはその一例です。QEMUはこれを行いますが、特別なカーネルモジュールを使用した「仮想化」も可能にします。
シミュレータ:テキサスインスツルメンツは、ソフトウェア開発用のプロセッサのCYCLE ACCURATE動作モデルを提供します。これは、ハードウェアが動作する前に開発者が使用する特定のプロセッサコアの動作の正確なシミュレーションを目的としています。
ソフトウェアエミュレーターの拡張機能:BLEEMを使用すると、Playstationソフトウェアを実行できるだけでなく、プレイステーションが提供できるよりも高い解像度でディスプレイを出力できるようになり、利用可能なGPUのより高度な機能も利用できるようになりました。(つまり、テクスチャのより良いブレンドとスムージング。)
どちらも、オブジェクトへの入力を制御したり、出力を監視したりするための何らかの手段を持つオブジェクトのモデルです。
主な違いは次のとおりです。
例を挙げましょう-新しいセンサー(温度計など)をシステムに追加すると、システムにどのように影響するかを確認するためにシステムテストを実行するとします。あなたは、温度計がその測定値を含むメッセージを1秒間に8回送信することを知っています。
シミュレーション-まだ体温計を持っていないが、このメッセージレートがシステムに過負荷をかけないことをテストしたい場合は、1秒に8回乱数を送信するユニットを接続してセンサーをシミュレートできます。センサーが送信する実際の値に依存しない任意のテストを実行できます。
エミュレーション-0.001 Cと測定される非常に高価な温度計があり、0.5 Cにしか測定できないより安価な温度計で問題がないかどうかを確認したいとします。高価な温度計を使用して、より安価な温度計をエミュレートできます次に、読み取り値を最も近い0.5 Cに丸め、温度値に依存するテストを実行します。
シミュレーションは、動作の予測または予測にも使用できることに注意してください。有限要素解析シミュレーションは、天気予報や仮想風洞など、多くのアプリケーションで使用されています。
用語の定義:
この質問は、おそらく歴史的な実践を見てみると最もよく答えられます。
過去には、PlayStationとSEGA用のPC上のゲームコンソールエミュレータを見てきました。
シミュレーターは、運転や飛行などの実際の行動を模倣しようとするソフトウェアを指す場合に一般的です。Gran TurismoとMicrosoft Flight Simulatorは、シミュレーターの古典的な例として思い浮かびます。
言語の違いについては、エミュレーションは通常、誰か(または何か)の称賛に値する特性または動作をコピーするアクションを指します。エミュレーションは、人をあざける目的で模倣する模倣とは異なります。
動詞「シミュレーション」の言語的意味は、本質的に誰かまたは何かを装ったり模倣することです。
コンピュータサイエンスでは、シミュレーションとエミュレーションの両方が、同じ入力から、元のシステムと同じ出力を生成します。ただし、エミュレーションもそれを達成するために同じプロセスを使用し、同じ材料で作られています。シミュレーションは、元のシステムとは異なるプロセスを使用します。また、注目に値するのは、レプリケーションという用語です。これは、2つのプロセスの中間にあります。同じプロセスを使用しますが、異なる素材で作られています。
PCで古いスーパーマリオブラザーズゲームを実行する場合は、SNES エミュレータを使用します。これは、ゲームを実行するために同じまたは類似のコンピュータコード(プロセス)を使用しており、同じまたは類似の素材(シリコンチップ)を使用しているためです。 。ただし、PCでボーイング747ジェットを飛行させたい場合は、フライトシミュレータを使用します。これは、元のプロセスとはまったく異なるプロセスを使用しているためです(実際の翼、揚力、または空気力学は関係しません!)。
以下は、コンピュータサイエンスの用語集からの正確な定義です。
シミュレーションは、システムの入力と出力の間の機能的な接続をキャプチャするシステムのモデルですが、必ずしもシステム自体のプロセスと同じまたは類似のプロセスに基づいているわけではありません。
レプリケーションは、システムの入力と出力の間の機能的な接続をキャプチャするシステムのモデルであり、システム自体のプロセスと同じまたは類似のプロセスに基づいています。
エミュレーションとは、システムのプロセスと同じまたは類似のプロセスに基づいて、システムの入力と出力の間の機能的な接続をキャプチャし、そのシステムと同じ材料で構築されている一部のシステムのモデルです。
参照:The Open University、M366 Glossary 1.1、2007
シミュレーションは、他のものと同様に動作するシステムですが、まったく異なる方法で実装されます。これは、システムの基本的な動作を提供しますが、シミュレーションされるシステムのすべてのルールを必ずしも遵守する必要はありません。何かがどのように機能するかについてのアイデアを与えるためにあります。
エミュレーションとは、他のエミュレーションとまったく同じように動作するシステムであり、エミュレートされるシステムのすべてのルールに従います。これは事実上、エミュレートされたシステムの入力と出力とバイナリ互換性があるまで、別のシステムの完全な複製ですが、元のエミュレートされたシステムの環境とは異なる環境で動作します。ルールは固定されており、変更できないか、システムに障害が発生します。
言葉の定義は違いを最もよく表します。グーグル検索は、シミュレートとエミュレートの以下の定義を提供します:
シミュレートは、 外観や文字を模倣します。
通常は模倣によって、一致または超える(人または成果)をエミュレートします。
シミュレーションはシステムを模倣します。エミュレーションはシステムを非常によくシミュレートするため、システムを置き換えたり、システムを凌駕することさえあります。
コンピューティングでは、エミュレーションは、エミュレートしているシステムの代わりになるものです。多くの場合、それは模倣しているシステムよりも性能が優れています。たとえば、ゲームコンソールエミュレータは通常、ハードウェアの互換性の向上、パフォーマンスの向上、オーディオ/ビデオの品質の向上などの改善を行います。
一方、シミュレーションは、モデルであることによって制限されます。それらはシステムを模倣するための最善の試みですが、それを置き換えるものではありません。ハードウェアを模倣することができ、違いを見分けるのが難しいため、ハードウェアエミュレータがあります。実際の農業に取って代わることができるエミュレーションがないため、農業エミュレータはありません。農業のモデルをシミュレートして、より良い農業方法に関する洞察を得ることができます。
エミュレータ:
あなたが英語だけを知っていて、中国にいる状況を考えてみましょう。中国人と交流するには、通訳が必要です。現在、翻訳者の役割は、英語で入力を求めて中国語に変換し、その入力を中国人に提供し、中国人から応答を得て英語に変換し、出力を英語で提供することです。今、その翻訳者と中国人がエミュレーターです。両方を組み合わせると、まるでイギリス人と通信しているかのように同様の機能が提供されます。そのため、ハードウェアは異なる場合がありますが、機能は同じです。
シミュレーター:
SPICEやフライトシミュレーターよりも良い例を示すことはできません。どちらも、ハードウェアコンポーネントの動作を、ハードウェアと同様に動作するソフトウェアまたは数学モデルに置き換えます。
最終的には、どのソリューションがプロジェクトのニーズにより適しているかというコンテキストに依存します。
シミュレーターはエミュレーターよりも広い範囲のものであり、この用語の二重性は上記の投稿で見過ごされているようです。
エミュレータ
既存のシステムの一部のハードウェア部品を直接交換し始めたとき、人々は「コンピューターの世界」で新しい単語エミュレーションを使用することを決めました-自分の動作を模倣し、何かを壊さないように、そしてすべてをそのままにしておくために計算の性質に依存しています。同等の状態。この部分をエミュレートしました!(そして全体は以前と同様に機能します)
エミュレーターは通常、デジタル領域で狭義の代替として使用され、仮想化-ソフトウェアの一部としてデジタル形式で表示されます-以前から知られていました(仮想チップ、回路基板、電子デバイス)。世界がデジタル化し、エミュレータの言葉を大衆に伝えたとき、大衆は不確実性を追加しました(または追加の理由)。
シミュレーター
まず第一に、私はエミュレーターが実際の何かを行うか置き換えるかについての多くのコメントを見ましたが、シミュレーターはそうではありません。
しかし、フライトシミュレータは実物に使用されます-パイロットを訓練し、彼らにスキルと知識を与え、高価な実機に取って代わり、多くのお金を節約します。そして、これはそれよりもはるかに大きいという内面の感覚があるので、単にプレーンエミュレータとは言えないので、シミュレータと呼びます:)プレーンシミュレータは、真のエミュレートされたレーダーまたはトランスポンダを含むことができます。
シミュレーターは分析と研究に使用されます(そして、エミュレーターは実際の何かに使用されます)が、その分析と研究は、エミュレートされたGSMボードよりも現実に近いものです(私たちが住んでいる情報化時代のさらに多く)。分析は、ビジネスに付加価値を与え、コストを削減するか、交換された(エミュレートされた)ハードウェア以上の利益を指摘します。
シミュレーターは、何らかの理由(コスト、技術、物理的不可能性)で入手できないもののモデリングに似ています。これは通常、市場、天気、燃焼、ユーザーなど、新しい、無形の、複雑な、または私たちに適切に知られていない何かについてシミュレーションされます。フライト、ブラックホール、証券取引所、シミュレーションです。
最後に:
言葉は起源
すべてラテン語から来ており、意味は次のとおりです。