互換レイヤー

互換レイヤーとは、あるソフトウェア環境やハードウェアアーキテクチャ向けに作成され、コンパイルされたアプリケーションを、別のホストシステムで実行できるようにするソフトウェアインターフェースです。ある環境向けに設計されたAPI呼び出しやその他のシステム機能を受け取り、ホストシステムが理解できる呼び出しに変換します。

互換レイヤーは、ある環境向けに作られたソフトウェアたとえば、(x86プロセッサ上のWindows)を、同様のハードウェア上の別のオペレーティングシステムx86プロセッサ上の(Linux)や、異なるハードウェアアーキテクチャ上の同様のオペレーティングシステム(ARMプロセッサ上のWindows)で実行できるようにすることで、エミュレーション仮想化と同様の役割を果たします。互換レイヤーは、プログラムが元の環境に対して行おうとするすべてのシステムAPI呼び出しを受け取り、新しいホスト環境への同等の呼び出しに変換します。

代表的な互換レイヤーには、Windows APIを実装してWindowsプログラムをLinux上で実行できるようにするWine、macOS上のRosetta 2x86向けにコンパイルされたmacOSアプリを(Apple Silicon上で実行できるようにします)、Windows上のWOW64x86向けに作られたWindowsアプリを(x86-64およびARMプロセッサ上で実行できるように変換します)などがあります。

互換レイヤーでソフトウェアを実行すると、別の環境をエミュレートしたり仮想マシンを実行したりする場合より、使用するシステムリソースが少なくて済むことがよくあります。ただし、互換レイヤーを使用すると、一部のソフトウェアでエラーが発生したり、正しく動作させるために追加の設定が必要になったりすることがあります。

エミュレーションおよび仮想化との比較

エミュレーター、仮想化、互換レイヤーは、別の環境向けのソフトウェアを実行するためによく使われます。それぞれの方法では、この作業を異なる方法で実現します。

エミュレーターは、ソフトウェアを使ってデバイスのハードウェアとソフトウェアの両方を再現し、環境全体をエミュレートします。ハードウェアデバイスをソフトウェアでエミュレートするには大量のシステムリソースが必要なため、同程度の性能を実現するには、ホストシステムがエミュレート対象のハードウェアより大幅に高速である必要があります。2つのハードウェアプラットフォーム間の変換を目的とする互換レイヤーには、ハードウェアエミュレーターが含まれますが、環境全体を常にエミュレートするのではなく、必要な場合にだけ使用します。

仮想マシンは、ホストコンピューターのハードウェア上にコンピューター全体を再現します。オペレーティングシステムのコピーを実行し、ソフトウェアレイヤーを使って仮想化されたハードウェアへの呼び出しをホストコンピューターのハードウェアへの呼び出しに変換します。互換レイヤーは必要な呼び出しだけを変換し、必要のないハードウェアやソフトウェアへの呼び出しを再現することはありません。

更新日 November 7, 2022 著者: Brian P.

quiz知識をテストする

In the equation 8 ÷ 2 = 4, the number 8 is also known as what?

A
Numerator
0%
B
Variable
0%
C
Operand
0%
D
Macro
0%
Correct! Incorrect!     View the Operand definition.
More Quizzes →

Tech Terms コンピューター辞書

このページの互換レイヤーの定義は、TechTerms.comの著者が執筆したオリジナルの定義です。このページを参照または引用する場合は、定義の直下にある緑色の引用バーをご利用ください。

私たちの目標は、コンピューター用語をわかりやすく説明することです。すべての定義において正確さとわかりやすさを追求しています。フィードバックや新しい技術用語の提案がある場合は、お問い合わせください

Tech Terms ニュースレター

毎日または毎週のニュースレターで技術知識を高めましょう!今すぐ購読して、新しい用語やクイズをメールでお受け取りください。

無料のTechTermsニュースレターに登録する

メールの受信頻度を選択してください

各メールのリンクから、いつでも登録解除または頻度変更ができます。 ご質問はこちらからお問い合わせください。

注意:ニュースレターは英語で配信されます。