Virtual Control Program Interface
Virtual Control Program Interface (VCPI) はIA-32の仮想86モードを使用してソフトウェア的に実現したEMSマネージャとプロテクトモ�…
Virtual Control Program Interface (VCPI) はIA-32の仮想86モードを使用してソフトウェア的に実現したEMSマネージャとプロテクトモードアプリケーション(主としてDOSエクステンダ)を共存させるための規格である。
概要
DOSでは、アクセス可能なアドレス空間(コンベンショナルメモリ)は、最大でも640KB(IBM PC互換機およびPC-9800シリーズ等)から768KB(PC-H98シリーズ等)であった。やがてメモリ容量が不足してくると、ハードウェアによるバンク切り換え機能を持つ専用メモリカードを利用してEMS等のメモリ拡張方法が利用され始めた。一方、80286上位互換のCPUではプロテクトメモリが利用できるために、メモリ不足を補う方法としてソフトウェアエミュレーション技術を使用したEMS(ソフトウェアEMS)やDOSエクステンダが登場した。
ところが、IA-32の仮想86モードを使用したソフトウェアEMSの環境下では、次のような問題が発生したためにDOSエクステンダを動作することが出来なかった。
- DOSが仮想86モードで動作しているために、リアルモードからプロテクトモードへの切替えを想定されて開発されたDOSエクステンダは、特権命令を使用できないためプロテクトモードへ切替える方法が無かった。
- ソフトウェアEMSが全てのプロテクトメモリを獲得してしまうためにDOSエクステンダが利用可能なプロテクトメモリが存在しなかった。
- プロテクトモード環境下では、割り込みコントローラはリアルモードと異なる設定をしなくてはならないが、標準的な管理方法が無かった。
そこでこれらの問題を解決して、仮想86モードを使用したEMSマネージャとDOSエクステンダを共存させるための規格が、EMSマネージャのメーカーであるQuarterdeck Office SystemsとDOSエクステンダのメーカーであるPhar Lap Software, Inc.の間で策定された。
これがVirtual Control Program Interface (VCPI) である。
VCPIはLIM-EMS 4.0規格の int 67h ファンクションコールを拡張する形でEMSマネージャにVCPIサーバが実装され、VCPIサーバのファンクションコールをDOSエクステンダが呼び出すことにより、DOSエクステンダはプロテクトメモリの獲得、割り込みコントローラの設定、仮想86モードとプロテクトモード間のモード遷移を行う。
VCPIは極めて簡素であるために EMSマネージャ、DOSエクステンダの両者共に最小限の修正で実現が可能だった。しかしながら、VCPIはプロテクトモードアプリケーションを特権レベル0で動作をさせてしまうために、マルチタスクOSの仮想DOSマシンでサポートする規格としてはセキュリティ等の問題があるために不適だった。
関連項目
- DOS (オペレーティングシステム)
- Expanded Memory Specification (EMS)
- Extended Memory Specification (XMS)
- DOS Protected Mode Interface (DPMI)
- DOSエクステンダ
- プロテクトモード
参考文献
- 『MS-DOSメモリ管理ソフト技法-メモリ常駐ソフト&拡張メモリ活用プログラミング』(CQ出版、1990年), ISBN 978-4-7898-3484-1
- 「インターフェース 1990年9月号」(CQ出版)
- 「インターフェース 1993年10月号」(CQ出版)
- Duncan, Ray (1992). Extending-DOS:A Programmer's Guide to Protected-Mode DOS (Addison-Wesley), ISBN 0-201-56798-9
外部リンク
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.