|
Article on other languages:
|
DPMI(DOS Protected Mode Interface)は、マルチタスクOS(又は擬似マルチタスクOS)の仮想DOSマシンの環境下でプロテクトモードアプリケーション(主としてDOSエクステンダ)の実行環境を提供する規格である。
概要MS-DOSの次世代OSとなるマルチタスクOS(又は擬似マルチタスクOS)の仮想DOSマシンの環境下で、メモリ保護等のマルチタスク環境で必須のシステム保護を行った上でプロテクトモードアプリケーションの実行環境を提供する規格がDPMIである。 マルチタスクOSの環境下では、メモリ上に複数のアプリケーションを同時に読み込むことが出来るが、そのためにはメモリ領域の棲み分けをする以外に、バグや悪意のあるアプリケーションがメモリ上に読み込まれたとしても、他のアプリケーションのためのメモリ領域等のシステムリソースを破壊しないようにOSレベルでのシステム保護が必要である。 DPMIはシステム保護という目的を達成するためにプロテクトモードアプリケーションを特権レベル1~3で実行させる。DPMIアプリケーションは特権命令を直接利用することが出来ないので、DPMIサーバーが全てのプロテクトモードに関する管理を引き受けるため、VCPIと比べて多くのファンクションコールを提供する。 結果としてDPMIはVCPIよりもかなり重い環境になった。 しかしながら、DPMIサーバーが重くなった反面、DPMI専用クライアントはそれまでの一般的なDOSエクステンダより遥かに軽くなったというメリットもあった。 なお、DPMIはVCPIを拡張した規格であるという誤解が一部にあるが、DPMIは実際にはVCPIとの互換性は全く無く独立した規格である。 DPMIの問題点DPMIの最大の問題点は、登場時期が遅すぎたことである。 DPMI0.9の最初の実装は、Windows 3.0 である。 つまりこの時期に、ユーザーインターフェースのあるアプリケーションを新規に開発する場合には、わざわざDPMIアプリケーションとして開発するのではなく、Windowsアプリケーションとして開発する方がその将来性を考えて望ましい時期に入っていたことを意味するからである。なぜならば、Windows は GUI ばかりでは無く、プロテクトメモリもアプリケーションに提供したからである。MS-DOSのメモリ不足の解消方法の選択肢に Windows アプリケーションが加わったのである。 (ただし既存のDOSエクステンダや既存のプロテクトモードアプリケーションをDPMIに対応させることは、それらの製品寿命を延ばす意味があるので価値があった。またコンパイラやリンカー等のようにファイルしかアクセスしないアプリケーションを新規に開発することにも意味があった) また、最初に公開された仕様のバージョンが 0.9 であるということも問題であった。 DPMIの最初の仕様が 1.0 では無く 0.9 であった理由は、機能不足であったためである。 事実、DPMI0.9公開後、各DOSエクステンダのベンダは、自社のDOSエクステンダを DPMI 0.9 に対応させたが、DPMI0.9 の機能不足を補うために、仮想デバイスドライバ (VxD) を同時に開発したところが少なくなかった。 例えば PharLap社は、386|DOS-Extender をバージョン4.0からDPMIをサポートするようになったが、386|DOS-Extender を Windows で動作させる時に起こる問題に対応するために VxDドライバ PHARLAP.386 を同時に開発した。 関連項目
参考文献
|
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net