{{위키데이터 속성 추적}}
'''가상 도스 머신'''({{lang|en|Virtual DOS Machine: '''VDM'''}})은 16비트/32비트 [[도스]] 및 [[윈도우 3.1x|16비트 윈도우]] 프로그램을 [[인텔 80386]] 이상을 포함한 다른 운영체제에서 동작하도록 도와주는 [[소프트웨어]]이다. [[마이크로소프트]]의 [[마이크로소프트 윈도우|윈도우]] 등에서 구현되고 있는 [[IA-32]]의 [[가상 86모드]]를 이용하여 제공되는, [[MS-DOS]]의 [[시스템 호출]]이 작동하며 몇 가지 주변기기 또한 가상으로 구현된 [[가상 머신]]의 아키텍처를 말한다. 그러나, "가상 도스 머신"이라고 하여 반드시 도스용 프로그램만을 다루는 것이 아니다.

== 상세 ==
[[인텔]] 80386 프로세서의 가상 8086 방식에 의존하며 리얼 모드 8086 [[소프트웨어]]가 일반 [[운영 체제]]의 환경에서 [[하드웨어]] 접근을 동반한 모든 기능이 돌아갈 수 있도록 허용한다. [[운영 체제]]는 에뮬레이션을 수행하면서 [[도스]] [[소프트웨어]]를 실행할 수 있다. 가상 도스 머신은 일반적으로 [[16 비트]] 및 [[32 비트]] [[보호 모드]] [[소프트웨어]], 곧 [[DPMI]] 인터페이스를 따르는 도스 확장자(DOS4GW, DOS32A, 또는 PMODE/W)를 지원한다. [[컴퓨터]]에서 더 오래된 많은 [[도스|DOS]] 프로그램들을 만족스럽게 돌리지는 못한다. [[윈도우 XP]]가 [[사운드 블라스터]]와 같은 [[멀티미디어]] 장치들에 대해 가상 구현을 제공하지만<ref>{{웹 인용 |url=http://www.windowsitpro.com/article/tips/jsi-tip-6041-how-do-i-troubleshoot-ms-dos-programs-running-on-windows-xp-# |제목=How do I troubleshoot MS-DOS programs running on Windows XP? |확인날짜=2012-08-08 |보존url=https://web.archive.org/web/20120927032845/http://www.windowsitpro.com/article/tips/jsi-tip-6041-how-do-i-troubleshoot-ms-dos-programs-running-on-windows-xp-# |보존날짜=2012-09-27 |url-status=dead }}</ref>, VDM의 에뮬레이션은 가장 기본적인 주변기기를 위해서만 제공되는 것뿐이다. 지원되는 [[주변기기]]의 가상 구현은 완전하지 못하다. [[윈도우 NT]] 계열의 [[마이크로소프트 윈도우|윈도우]] 버전들은 [[도스]] 프로그램이 화면에 기록하고자 할 때 실제 화면을 1초에 몇 번만 업데이트한다. 또 더 높은 [[해상도]]의 [[그래픽]] 모드는 가상으로 구현해 내지 않는다. [[소프트웨어]]가 가상 구현을 거치지 않고 그대로 실행되기 때문에 모든 타이밍은 끝없이 되풀이되기만 한다. 응답에 많은 시간을 기다려야 하기 때문에, [[게임]]이 너무 빨라지거나 [[소프트웨어]]가 "가상 구현되는 [[하드웨어]] 기기들"을 감지해 내지 못할 수도 있다. 이러한 문제들에 대한 해결책은 보통 [[도스박스]]와 같은 완전한 [[중앙 처리 장치|CPU]] [[에뮬레이터]]를 사용하는 것이다. 이러한 에뮬레이터는 호환성은 높은 편이지만 호스트 [[운영 체제]]와 달리 완전 통합을 이루지는 못하며 속도가 상대적으로 느릴 수 있다.

== 역사 ==
윈도우/386 2.1에 처음 선을 보여 현재는 모든 32비트 버전의 윈도우에 존재한다. [[윈도우 NT]] 계열에서는 그러나 [[도스|DOS]]와 윈도우 3.x용 프로그램들을 실행하게만 도와줄 뿐이지 윈도우 API와의 통합에는 전혀 관여하지 않는다. [[윈도우 NT]]계열에서 단일 [[도스|DOS]]를 다루는 프로세스는 ntvdm.exe이다. [[OS/2]]의 2.0 이후에서도 쓰였다.<ref>{{웹 인용
 |url          = http://www.redbooks.ibm.com/pubs/pdfs/redbooks/gg244201.pdf
 |제목       = OS/2 Workplace Shell Configuration Techniques
 |year         = 1994
 |publisher    = [[IBM]] redbook
 |accessdate   = 2011-07-05
 |format       = PDF
 |pages        = 68–80
 |보존url    = https://web.archive.org/web/20120320053911/http://www.redbooks.ibm.com/pubs/pdfs/redbooks/gg244201.pdf
 |보존날짜 = 2012-03-20
 |url-status = dead
}}</ref> [[윈도우 XP]] 프로페셔널 x64 에디션 (x86-64) , [[윈도우 XP]] 64비트 에디션 (IA-64), [[윈도우 서버 2003]] (x64), 그리고 [[윈도우 비스타]] (x64)와 같은 64비트 [[중앙 처리 장치|CPU]]를 지원하는 최근의 NT 계열의 [[운영 체제]]들은 더 이상 NTVDM을 포함하고 있지 않으며 [[MS-DOS]]용 또는 16비트 윈도우용 응용 프로그램들을 실행할 수 없다. 32비트 [[윈도우 NT]] 계열의 NTVDM은 보통 전체 화면을 지원하는 데 반해, 32비트 계열의 [[윈도우 비스타]]부터는 전체 화면을 허용하지 않고 있다. 그러므로 전체 화면으로 동작해야 하는 옛 프로그램들은 [[윈도우 비스타]]에 구동할 수 없게 되었다. 16비트 윈도우용 응용 프로그램들은 WOWEXEC를 통해 구현되며 이 때에도 ntvdm.exe를 사용한다.

[[와인 (소프트웨어)|와인]] 또한 VDM을 포함하고 있으며, Win16과 도스 응용 프로그램들을 실행하는데 이용된다.<ref>[http://www.winehq.org/docs/winedev-guide/x3500 8.8.2. Win16 processes support], Chapter 8. Kernel modules, Wine Developer's Guide</ref> 와인의 VDM은 32비트, 64비트 운영 체제와 호환된다. 그러나 [[롱 모드]]의 이용으로 말미암아 16비트 응용 프로그램들은 64비트 [[리눅스 커널]]에서 실행되지 않는다.

== 같이 보기 ==
* [[와인 (소프트웨어)]]
* [[도스박스]]
* [[DOSEMU]]
* [[윈도우 구성 요소 목록]]
* [[하이퍼바이저]]
* [[윈도우 온 윈도우]]
* [[가상 머신]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* [https://web.archive.org/web/20080420174527/http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/prork/pric_run_tzvh.mspx?mfr=true 가상 도스 머신의 구조]

{{윈도우 구성 요소}}

[[분류:가상화 소프트웨어]]
[[분류:도스 기술]]
[[분류:윈도우 관리]]
[[분류:도스 에뮬레이터]]
[[분류:윈도우 구성 요소]]