エミュレーション
エミュレーションとは、あるコンピューターシステムを別のコンピュータープラットフォームをまねるようにプログラムすることです。エミュレーターと呼ばれるアプリケーションを使うと、特定のハードウェアプラットフォーム向けに作られたソフトウェアを、別のプラットフォーム上のシミュレートされた環境内で完全に実行できます。
エミュレーターの一般的な種類の1つは、古い、または廃止されたコンピューティングプラットフォームを最新のデバイス上でシミュレートします。たとえば、Motorola 680x0Macintosh用のエミュレーターは、別のコンピューターのプログラムウィンドウ内にクラシックMacを再現できます。これらのエミュレーターを使うと、必要なオペレーティングシステムを含め、最新のコンピューターでは利用できない、または互換性のないソフトウェアを実行できます。この種類のエミュレーターは、コンピューターの歴史研究者や保存活動家に人気があります。
古いコンピューターをシミュレートするだけでなく、エミュレーターは昔のビデオゲーム機もまねることができます。Super NintendoやSega Genesisなどのゲーム機をシミュレートするエミュレーターがあり、元のハードウェアがなくてもクラシックゲームをプレイできます。これらのエミュレーターは、.ROMファイルとして保存されたゲームを開きます。.ROMファイルには、元のゲームカートリッジやディスクのデータの正確なコピーが保存されています。
エミュレーションソフトウェアは、プラットフォーム全体ではなく、特定のハードウェア部品をシミュレートすることもできます。この種類のエミュレーションで最も一般的なのはディスクドライブエミュレーターです。これは、ディスクイメージファイルたとえば、(Windowsの.ISOファイルやmacOSの.DMGファイル)を、外付けディスクを接続したり光学ドライブに挿入したりしたかのようにマウントできるようにします。ソフトウェア開発者は、ソフトウェアインストーラーを配布するためにこれらのファイルをよく使用します。コンピューターのユーザーは、物理的な損傷に備えてディスクのバックアップコピーを作成することもあります。
仮想化との比較
エミュレーションは仮想化に似ています。どちらの技術も、ホストコンピューター上で別のプラットフォームのオペレーティングシステムやアプリケーションをソフトウェア環境内で実行できます。ただし、仮想化のほうが実現しやすい方法です。
仮想化では、ホスト環境とゲスト環境の基盤となるハードウェアが同じである必要があります。これは、仮想化ソフトウェアが仮想マシンからのハードウェア呼び出しを物理ハードウェアに渡すためです。エミュレートされた環境では、エミュレーターが代わりに、ゲストプラットフォームが要求するハードウェア呼び出しを、ホストが提供できるものへ変換する必要があります。そのため、同じレベルの性能を実現するには、ホストコンピューターがエミュレートするゲストシステムよりも大幅に高性能でなければなりません。
知識をテストする