コンテンツにスキップ

仮想DOSマシン

出典: フリー百科事典『ウィキペディア(Wikipedia)』

仮想DOSマシン(かそうディーオーエスマシン、Virtual DOS Machine:VDM)とは、マイクロソフトWindows等に実装されたIA-32仮想86モードを利用したMS-DOSシステムコールが利用可能な環境のことである。

Windows 9x系での仮想DOSマシン

[編集]

Windowsには仮想マシンと呼ばれる概念があり、これは一般的によく使われているハードウェアエミュレーションを行う仮想マシンとは別のものである。Windows 9xには「システム仮想マシン」と「仮想DOSマシン」と呼ばれる2つのタイプの仮想マシンが存在する。システム仮想マシンは一つだけ作成され、OSとすべてのWin16アプリとWin32アプリはシステム仮想マシン上で動作する。(なおWin32アプリはそれぞれ独立してメモリアドレス空間で動作し、16ビットWindowsアプリは互換性のためにすべてのアプリケーションでメモリアドレス空間を共有している。)[1] [2]

Windows 9x系は一部を除きOSは32ビット化されており、OS自体がMS-DOSのシステムコールを直接呼び出すことはない。ただし必要な場合はMS-DOSの機能をレガシードライバとして利用することが出来る。Windows 9x系でDOSプロンプトを起動するとDOSプロンプトごとに独立した仮想DOSマシンが作成されcommand.comが実行される。この仮想DOSマシンの環境からMS-DOSの機能を使うことが出来る。

NT系での仮想DOSマシン

[編集]

Windows NT系のOSに於いては、カーネルとユーザランドにおいて完全に32ビット化されておりMS-DOSの機能は完全に含まれていない。この上で、DOSアプリケーションを動作させる場合や16ビットWindowsアプリケーションを実行する場合、NTVDMと呼ばれるアプリケーションが起動し、そのプロセス内に仮想空間が作られ16ビットアプリケーションが実行される。

NTVDMはINT 21h/AH=30(Get DOS VERSION)では5.00を返す[3]

なお、CPUの64ビット動作モードであるLongモードでは仮想86モードが使えないため、64ビット版WindowsにはNTVDMは存在しない。

OS/2での仮想DOSマシン

[編集]

OS/2バージョン1.xでは、DOSアプリケーションはリアルモードで動作し、同時に1つのDOSアプリケーションしか動作しない。正確には仮想DOSマシンではない。OS/2 1.xのDOS BOXはINT 21h/AH=30(Get DOS VERSION)では10.xを返す[3]

OS/2バージョン2.0以降では、仮想DOSマシンは仮想86モードを使用し、同時に複数のDOSアプリケーションを動作させることができる。MVDM(マルチ仮想DOSマシン)と呼ばれた。OS/2 1.xからDOS互換性が大幅に向上したため、IBMは、MVDMのことを"A Better DOS Than DOS"と呼んでいた。 OS/2 2.xのMVDMはINT 21h/AH=30(Get DOS VERSION)では20.xを返す[3]

脚注

[編集]

出典

  1. ^ https://www.atmarkit.co.jp/fwin2k/special/win9xorwin2k/windows9xknlover.html
  2. ^ https://www.informit.com/articles/article.aspx?p=131307&seqNum=4
  3. ^ a b c GET DOS VERSION

関連項目

[編集]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy