仮想DOSマシン(VDM):レガシーDOS・16ビットWindowsソフトウェアの実行
仮想DOSマシン(VDM)は、DOSの動作やハードウェアアクセスを再現する制御された仮想環境を提供し、最新の32ビットシステムで16ビットDOSおよび16ビットWindowsプログラムを実行可能にします。
概要
仮想DOSマシン(VDM)とは、通常は異なるオペレーティングシステムを実行しているシステム上で、コンピュータの利用者が旧来の16ビットまたは32ビットのDOSプログラム、および16ビットのWindowsアプリケーションを動作させるためのソフトウェア機能である。VDMは、レガシープログラムが想定する環境を再現するよう設計されており、プログラムを改変せずに実行できる一方、ホスト側はファイル、デバイス、メモリなどの共有資源へのアクセスを制御する。
画像ギャラリー
1 画像仕組み
多くのx86システムでは、VDMはプロセッサの機能(たとえば仮想8086モードや類似のモード)を利用し、リアルモードまたは16ビット保護モード向けに書かれたコードを実行する。ホストは特権操作を捕捉し、それをエミュレートするか、安全なインターフェースへリダイレクトする。そのためVDMは、ネイティブ実行とI/Oおよび割り込みの仮想化を組み合わせ、直接的なハードウェアアクセスを、ホストが管理できる制御済みの呼び出しへ変換する。CPUモードではなく完全なエミュレーションを用いる実装もあり、その場合は性能を犠牲にして互換性を高められる。
歴史と実装
VDMの概念は、複数のオペレーティングシステムや製品に登場してきた。初期のデスクトップOS系列には移行を容易にするDOS互換レイヤーが含まれ、代表例として、Microsoft Windows NTの32ビット版におけるNTVDMサブシステムや、他システムにおける同様の「DOSボックス」機構がある。DOSEMUなどのサードパーティー製プロジェクトやエミュレータ、仮想マシン製品も、CPUモードの活用、デバイスエミュレーション、ファイルシステムのマッピングを組み合わせ、レガシーソフトウェアを実行する手段を提供している。
用途と制限
組織や個人は、古いDOSまたはWin16インターフェースに依存する業務アプリケーション、ユーティリティ、ゲームを保存・利用するためにVDMを使用する。VDMはシリアルポート、タイマー、基本的なグラフィックスやサウンドに関する想定を再現できるが、制限もある。直接的でタイミングに敏感なハードウェアアクセス、独自ドライバー、または64ビットのネイティブホストを必要とするプログラムは、正しく動作しないことがある。最新の64ビットホストでは、完全な互換性を得るために従来型VDMではなく、完全仮想化またはエミュレーションが必要となる場合が多い。
相違点と主な事実
- VDMと完全仮想マシン:VDMは通常、軽量なOSレベルの互換レイヤーを提供する。完全なVMはすべてのハードウェアをエミュレートし、独立したゲストOSを実行する。
- VDMとエミュレータ:エミュレータは異なるCPUアーキテクチャでも動作しうるのに対し、多くのVDMはx86ハードウェアで利用可能なプロセッサモードに依存する。
- 実用例には、デスクトップ環境やサーバーツールに組み込まれたソリューション、ならびにソフトウェア保存のために用いられるスタンドアロンエミュレータがある。
詳しくは、利用中のホストオペレーティングシステムのベンダー文書と互換性ガイド、ソフトウェアアーカイブ、レガシー対応リストを維持するコミュニティプロジェクトを参照するとよい。最新環境で古いプログラムを実行する方法、ハードウェアアクセスと仮想化に関する考慮事項についての資料も参照されたい。一般的なコンピューティングの文脈については、コンピュータとシステムアーキテクチャの入門書から追加情報を得られる。
関連項目
著者
AlegsaOnline.com 仮想DOSマシン(VDM):レガシーDOS・16ビットWindowsソフトウェアの実行 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/105574
出典
- antonis.de : NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds · web.archive.org
- drdos.net : OpenDOS Developer's Reference Series — OpenDOS Multitasking API Guide — Programmer's Guide
- drdos.net : DR-DOS 7.02 User Guide
- redbooks.ibm.com : "OS/2 Workplace Shell Configuration Techniques"
- technet.microsoft.com : Chapter 27 - Windows Compatibility and Migration: Windows NT 4.0 Resource Kit
- windowsitpro.com : How do I troubleshoot MS-DOS programs running on Windows XP?
- support.microsoft.com : INFO: How Windows handles floating-point calculations
- technet.microsoft.com : "Microsoft Security Bulletin MS10-015 - Important: Vulnerabilities in Windows Kernel Could Allow Elevation of Privilege (977165)"
- archives.neohapsis.com : "Microsoft Windows NT #GP Trap Handler Allows Users to Switch Kernel Stack"
- theinquirer.net : "Ancient Windows flaw found after 17 years"
- microsoft.com : "Microsoft Security Advisory (979682): Vulnerability in Windows Kernel Could Allow Elevation of Privilege"
- vttoth.com : The "Win 16 Subsystem has insufficient resources to continue running" problem on Windows XP
- download.intel.com : Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B, and 3C