互換レイヤー

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

互換レイヤー(ごかんレイヤー、: compatibility layer)とはエミュレーション実行を実現する手法の一つである。互換レイヤーを使えば性能をほとんど落とすことなく他のオペレーティングシステム (OS) のバイナリなどを実行できるが、互換性のあるアーキテクチャプログラムしか実行できないという欠点がある。

ソフトウェアにおける実装[編集]

互換レイヤーを使うと他の OS などのプログラムバイナリをエミュレーション実行することが出来る。互換レイヤーはシステムコールをエミュレーション実行されているシステムのものから動かしているシステムのものに変換することでエミュレーションを行う。エミュレーション実行されているプログラムのためにライブラリを用意すれば、エミュレーション実行できることが多々ある。

互換レイヤーの例:

互換レイヤーを使うとハードウェアを完全にエミュレーションするのに比べ、簡単で高速に動作させることが可能となる。元の環境よりも速くなるというプログラムすら存在する。たとえば、LinuxのアプリケーションにはFreeBSDのLinuxエミュレーションを使って実行するとRed Hat Linuxで実行した場合よりも速くなるものがあるという意見がある。

逆に、似たようなシステムであっても、互換レイヤーの実装が複雑で不具合が多いものになることもある。その好例はNetBSDにおけるIRIXバイナリ互換レイヤーである[3]

互換レイヤーを実装するにはエミュレーション実行するシステムのCPUがエミュレーション実行されるシステムに上位互換である必要がある。つまり、WindowsはPowerPCと上位互換でないx86で動作するので、PowerPCで動くプログラムの互換レイヤーを作ることは出来ない。この場合はハードウェアまで含めた完全なエミュレーションが必要となる。

参考文献[編集]

  1. ^ Linux バイナリ互換機能 (FreeBSD ハンドブック)”. 2012年10月8日閲覧。
  2. ^ Charlie Russel, Microsoft MVP for Windows Server and Tablet PC (2002年2月18日). “Application Compatibility in Windows XP”. 2008年5月12日閲覧。
  3. ^ Emmanuel Dreyfus, ONLamp. “IRIX Binary Compatibility”. 2008年5月12日閲覧。