
電気通信およびコンピューティングにおいて、後方互換性(または後方互換性)とは、オペレーティングシステム、ソフトウェア、実世界の製品、または技術の特性であり、古いレガシーシステム、またはそのようなシステム向けに設計された入力との相互運用性を可能にするものです。
後方互換性を許容しない方法でシステムを変更することは、後方互換性の「破壊」と呼ばれることがあります。[ 1 ]このような破壊は通常、切り替えコストなどのさまざまな種類のコストを伴います。
補完的な概念として前方互換性があります。前方互換性のある設計は通常、将来の規格や製品との互換性のためのロードマップを備えています。[ 2 ]
後方互換性と前方互換性の両方の簡単な例として、ステレオFMラジオの導入が挙げられます。FMラジオは当初モノラルで、1つのオーディオチャンネルが1つの信号で表現されていました。2チャンネルステレオFMラジオの導入に伴い、多くのリスナーはモノラルFM受信機しか持っていませんでした。モノラル受信機とステレオ信号の前方互換性は、左右のオーディオチャンネルの合計を1つの信号で、差分を別の信号で送信することによって実現されました。これにより、モノラルFM受信機は、オーディオチャンネルを分離するためにのみ必要な差分信号を無視して、合計信号を受信してデコードすることができます。ステレオFM受信機は、2番目の信号を必要とせずにモノラル信号を受信してデコードでき、合計信号と差分信号の両方を受信すれば、合計信号を左右のチャンネルに分離することができます。後方互換性の要件がなければ、より簡単な方法を選択できたでしょう。[ 3 ]
完全な後方互換性は、コンピュータの命令セットアーキテクチャにおいて特に重要であり、最も成功した例としては、IBM 360 / 370 / 390 / Zシリーズのメインフレームと、Intel x86ファミリーのマイクロプロセッサが挙げられる。
IBMは1964年に最初の360モデルを発表し、それ以来、このシリーズを継続的にアップデートしてきた。数十年の間に、32ビットレジスタ/24ビットアドレスから64ビットレジスタ/アドレスへの移行が進められた。
Intelは1978年に最初のIntel 8086/8088プロセッサを発表しました。その後も数十年にわたり、16ビットから64ビットへの移行が続けられました。(8086/8088は、前世代のプロセッサ向けに書かれたプログラムの機械翻訳の容易性を念頭に設計されていましたが、 1974年の8ビットIntel 8080プロセッサとは命令セットの互換性がありませんでした。ただし、 Zilog Z80はIntel 8080との完全な下位互換性がありました。)
完全な後方互換性を持つプロセッサは、前世代のプロセッサと同じバイナリ実行可能ソフトウェア命令を処理できるため、新しいアプリケーションやオペレーティングシステムを取得することなく、新しいプロセッサを使用できます。[ 4 ]同様に、 Wi-Fiデジタル通信規格の成功は、その幅広い前方および後方互換性によるものです。後方互換性のない他の規格よりも普及しました。[ 5 ]
ソフトウェア開発において、後方互換性とは、 APIを介して機能が呼び出されたときにエラーが発生しないソフトウェア部品間の相互運用性に関する一般的な概念です。[ 6 ]機能を呼び出すために使用されるAPIが異なるバージョン間で安定している場合、ソフトウェアは安定していると考えられます。 [ 6 ]
オペレーティングシステムでは、新しいバージョンへのアップグレードは、以前のバージョンの実行ファイルやその他のファイルが通常どおり動作する場合、下位互換性があると言われます。[ 7 ]
コンパイラにおける後方互換性とは、新しいバージョンの言語用のコンパイラが、以前のバージョンで動作していたプログラムやデータのソースコードを受け入れることができる能力を指す場合がある。[ 8 ]
データ形式は、新しいバージョンのプログラムが以前のバージョンと同様にエラーなく開くことができる場合に、下位互換性があると言われます。[ 9 ]
企業が後方互換性を実装する動機はいくつかあります。1つは、メーカーが古いハードウェアのサポートを終了すると、そうでなければ失われてしまう古いソフトウェアを保存するために使用できることです。ビデオゲームは、古いソフトウェアをサポートする価値について議論する際に最もよく話題に上がるため、この最も顕著な例です。ビデオゲームの文化的影響は、その継続的な成功の大きな部分を占めており、後方互換性を無視するとこれらのタイトルが消えてしまうと考える人もいます。[ 10 ]後方互換性は、新しく導入されたハードウェアのセールスポイントとしても機能します。以前のハードウェアの既存のインストールベースは、コンソールの次の世代に手頃な価格でアップグレードできます。これは、開発者が新しいハードウェアに移行する間、ユーザーが以前のコンソールのゲームライブラリからゲームを利用できるため、新しいシステムの発売時にタイトルが不足していることを補うのにも役立ちます。 [ 11 ]例えば、PlayStation 2の初代PlayStation(PS)ソフトウェアディスクと周辺機器との後方互換性は、発売初期の数か月間、コンソールの主要なセールスポイントの1つと考えられています。[ 12 ] [ 13 ]さらに、1990年代半ばの研究では、新しいシステムを購入した後、古いゲームをプレイしない消費者でさえ、後方互換性を非常に望ましい機能と考えており、たとえそうすることを選ばなくても、既存のゲームコレクションをプレイし続けることができるという能力自体を高く評価していることがわかりました。[ 13 ]
発売時には含まれていなかったものの、マイクロソフトは製品ライフサイクルの数年後に、Xbox Oneの一部のタイトルで後方互換性を徐々に組み込んだ。 [ 14 ]プレイヤーは、Xbox の後方互換性のあるゲームで 10 億時間以上をプレイしている。この機能の成功と実装の大きな要因は、新世代コンソールのハードウェアが強力であると同時に、古いタイトルを分解して再構成して Xbox One で実行できるほどレガシー システムと似ていることである。[ 15 ]このプログラムは Xbox プレイヤーに非常に人気があり、スタジオが制作したクラシック タイトルのリマスターという最近のトレンドに逆行し、コンソールメーカーの戦略における重要な変化を生み出したと考える人もいる。[ 14 ] PlayStation 5 (PS5)、[ 16 ] Xbox Series X/S、Nintendo Switch 2などの現在の世代のコンソールもこの機能をサポートしている。
古いソフトウェアのサポートにかかる金銭的コストは、後方互換性の使用における大きな欠点と考えられています。[ 11 ] [ 13 ]後方互換性に関連するコストは、レガシーシステムをサポートするためにハードウェアが必要な場合の部品コストの増加、製品の複雑さの増加による市場投入までの時間の長期化、技術的な障害、イノベーションの減速、互換性に関するユーザーの期待の増加です。[ 1 ]ビデオゲームの場合、開発者が新旧両方のシステムと互換性のあるゲームの開発を優先するリスクも生じます。これは、潜在的な購入者の基盤が大きくなるため、新しいシステムの高度な機能を使用するソフトウェアが不足する結果となります。[ 13 ]このため、いくつかのコンソールメーカーは、コストを削減し、新しいハードウェアの登場前に一時的に販売を活性化するために、コンソール世代の終わりに後方互換性を段階的に廃止しました。[ 17 ]このようなアプローチの一例はPlayStation 3(PS3)で、初期の改訂版ではオンボードのEmotion EngineとGraphics Synthesizerハードウェアチップを搭載することでPlayStation 2(PS2)ゲームとの後方互換性を備えていましたが、ハードウェアコストを削減しコンソールの販売を向上させるために後のシステムでは削除され、コンソールからPS2との後方互換性が事実上なくなりました。GameCubeコンソールは、 Game Boy Playerアタッチメントを介してGame Boy、Game Boy Color、Game Boy Advanceとの後方互換性があります。同様に、WiiのほとんどのモデルはGameCubeとの後方互換性がありましたが、これもコスト削減のために2011年以降に発売された後のモデルでは削除されました。
とはいえ、こうしたハードウェアコストの一部を回避することは依然として可能です。例えば、初期のPS2システムでは、初代PlayStation(PS1)CPUのコアがI/Oプロセッサに統合され、二重の用途に使用されていました。PS1モードではメインCPUとして機能し、 PS2モードではクロックアップしてI/Oをオフロードすることができました。後のシステムでは、初代I/OコアはPowerPCベースのコアに置き換えられ、PS1 CPUコアと同じ機能をエミュレートして同じ機能を果たすようになりました。しかし、このようなアプローチは裏目に出る可能性があり、スーパーファミコン( SNES)がその例です。SNESは、より一般的な16ビットマイクロプロセッサではなく、より特殊な65C816 CPUを選択しました。これは、65C816がエミュレーションモードで6502 CPUとソフトウェア互換性があるため、初代Nintendo Entertainment System(NES)との下位互換性を容易にするためでしたが、SNESの残りのアーキテクチャが設計されると、最終的には動作しないことが判明しました。[ 18 ]
互換性。