コンピュータ分野において、仮想制御プログラムインターフェース(VCPI)は、1989年にPhar Lap Software社によって公開された仕様であり、 DOSプログラムをプロテクトモードで実行することを可能にし、リアルモードでは利用できないプロセッサの多くの機能へのアクセスを可能にする。VCPIは、 Windows 3.0のプロテクトモードで動作できなかったことが大きな理由となり、導入後まもなくDOSプロテクトモードインターフェース(DPMI)に取って代わられた。
VCPI は1987 年以来Quarterdeck Office Systemsと協力し、 AI Architects、Lotus Development Corp.、Quadram、Qualitas、Rational Systemsのサポートを受けて開発され、 DOS の拡張メモリマネージャ ( CEMM、QEMM、後にEMM386 ) によって提供され、80386 保護モード DOS エクステンダーと 80386 EMS 拡張メモリエミュレータの共存を可能にします。 VCPI は DPMI に取って代わられましたが、その主な理由は、Windows 3.0 のネイティブ保護モード( 386 拡張モードと呼ばれる) で実行される DOS プログラムではサポートされておらず、VCPI はプログラムをRing 0で実行するため、 x86保護の目的が損なわれていたためです。また、 OS/2 2.0 以降では動作しませんでした。 VCPI は Windows 3.0 のリアルモードでのみサポートされていましたが、[ 1 ]一部のプログラムは Windows 3.x の標準モードでも実行できました。[ 2 ] [ 3 ] [ 4 ]標準モード (286 モード) Windows 3.1 (ただし 3.0 ではない) 自体は VCPI に準拠していました (VCPI クライアントでした)。[ 5 ]以前の Windows/386 2.1 は、DOS エクステンダーとは全く互換性がありませんでした。Windows NT DOS ボックスも VCPI をサポートしていませんでした。[ 6 ]
VCPIには比較的限定的な範囲があり、保護モードのDOSプログラムは、仮想8086モードタスク内で既に実行されているDOSから起動された場合にのみ実行可能でした。(これは通常、プロセッサの仮想[モード]制御プログラムとして動作するメモリマネージャによって実現されました。)仮想8086モードはプログラムをハードウェアから分離するため、制御プログラムからの何らかのサポートなしにプログラムが保護モードに切り替えることはできません。
1989年から1990年2月にかけて[ 7 ]、VCPIのいくつかの欠点を解消し、386プロセッサのメモリ管理とマルチタスク機能をより有効に活用するために、 IntelのSoftware Focus Group[7][9][10]、Lotus[7]、Digital Research[7]、Interactive Systems、Viewport Internationalなど多数の企業によってExtended VCPI [ 8 ] [ 9 ] [ 10 ] (XVCPI [ 8 ] [ 9 ] [ 11 ])という名称で代替仕様が提案されました。[ 10 ] Interactive UnixやConcurrent DOS 386などのオペレーティングシステムを含む少数の製品で使用されました。[注1 ] 1990年2月から、[ 7 ]これらの取り組みは最終的に、1990年5月に(並行して)開発され公開されたDPMI仕様によって頓挫した。DPMI仕様は同様の問題に対処したが、同年リリース予定のMicrosoft Windows 3.0の実装と互換性があった。1991年2月、1990年7月に結成されたイニシアチブであるマルチユーザーDOS連盟(MDOS) [ 12 ]は、 DPMIへの支持に関する声明を発表した。[ 7 ]
INT67h,AH=DEhAX=DE40h;INT67h;AX=DE43h;INT67h;多くの MS-DOS ベースのアプリケーションは、仮想制御プログラムインターフェイス (VCPI) 仕様を使用しています。[…] これらのプログラムは、386 拡張モードの Microsoft Windows バージョン 3.0 では動作しません。Windows のリアルモードでは動作し、標準モードでも動作する可能性があります。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)これらのプログラムは VCPI […] を使用して拡張メモリにアクセスしますが、これは保護モード (標準および拡張) の Windows と競合します。
[…] 拡張メモリを使用する MS-DOS ベースのアプリケーションは、標準モードの MS-DOS ボックスでは実行できない可能性があります。
一部の VCPI アプリケーションは標準モードで実行できます。
標準モードの Windows 3.1 は VCPI に準拠していますが、標準モードの Windows 3.0 は準拠していません。
[…] は Windows NT ではサポートされていません。
[…] VCPI の作成者はその制限をよく認識しており、
Microsoft が
Windows 3.0
のベータ テスト バージョンと
DPMI
で登場したとき、
Extended VCPI
(XVCPI)と呼ばれる第 2 世代の仕様にすでに懸命に取り組んでいました
。数か月間、新興の
DOS エクステンダー
市場は相互に排他的な 2 つの方向に分裂するように見えました […] Microsoft は DPMI 仕様の管理をオープン メンバーの業界委員会に委ね、XVCPI の取り組みの支持者は DPMI の背後で協力することにしました。 […] マイクロソフトは、DPMI のうち DOS エクステンダー領域に踏み込む部分、具体的には
保護モード
でのDOS および
ROM BIOS
割り込みの直接サポートを削除することに同意しました。その結果、1990 年 5 月に DPMI 委員会によってリリースされた最初の公開バージョンである DPMI バージョン 0.9 では、低レベルまたは構成要素の機能のみが定義されています […] 当然ながら、Windows 3.0 の高レベルまたは DOS エクステンダー インターフェイスはまだ存在しますが、文書化されていない機能の暗黒領域へと後退しています。文書化されてはいませんが、決して使用できないわけではありません […]
拡張メモリで実行できるようにすることで Windows のパフォーマンスを向上させる一般的な取り組みの一環として、Microsoft が Windows バージョン 3.0 用に開発し、Lotus Corporation と Rational Systems から意見をもらいました。並行して、Intel はマルチタスク環境、EMS エミュレータ、および DOS エクステンダーの製造業者と協力して、拡張 VCPI 仕様が 80386 の仮想化および保護機能を完全に利用できるようにしました。 1990年2月、上記活動に関与した関係者は、DPMI委員会を設立し、保護モードDOSアプリケーションに関する業界標準を策定することに合意した。同委員会は、1990年5月に最初の公開版DPMI仕様書であるバージョン0.9をリリースした。
[…] 1990 年までに、VCPI 標準は、
Microsoftのプログラムを除いて、386 および 486 CPU に特化したほぼすべての DOS ベースのプログラムに採用されました。 VCPI 委員会は、Microsoft が
Windows 3.0
のベータ版をリリースしたときに、XVCPI (X は Extended の略) と呼ばれる VCPI のアップグレードに取り組んでいました
[…] Windows 3 には、保護モード、DOS 拡張、およびリアルモードのアプリケーションを同時に実行するためのより一般的なソリューションである DPMI、つまり
DOS Protected Mode Interface が
含まれています。当初、DPMIはXVCPIの競合相手のように見え、DOSエクステンダー分野では訴訟や混乱の脅威が懸念された。マイクロソフトがDPMIの管理をオープンな会員制の業界委員会に委ねると、XVCPI支持者が委員会に加わり、DPMIは事実上の業界標準となった。[…] DPMIバージョン0.9はWindows 3.0に登場した。[…]