문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 MS-DOS (문단 편집) == Windows 시대의 MS-DOS == [[Windows 3.1]]까지는 MS-DOS의 그래픽 [[셸(컴퓨터)|셸]] 프로그램으로 동작했다. [[Windows 95]]부터는 부트 로더 및 DOS 응용 프로그램 호환 계층으로 관여했는데, 이를 VDM(Virtual DOS Machine)이라 불렀다. POST(전원 ON 후 자가 점검) > MS-DOS 구동 > Windows 실행 순으로 진행한다. 때문에 Windows의 시스템 종료 메뉴에서 MS-DOS 모드로 시스템 다시 시작을 선택하면 MS-DOS를 사용할 수도 있었다. MS-DOS에서 독립형 최종 버전은 6.22였지만 [[Windows 9x]] 계열에 상기의 이유로 MS-DOS가 있었는데, Windows 95에 7.0, 95 OSR2와 [[Windows 98]], 98 SE에는 7.1, [[Windows Me]]에 8.0 버전의 MS-DOS가 들어갔다. 소비자가 마지막으로 (독립적으로) 본 최종판은 6.22였지만, 진짜 최종판은 Me에 포함한 8.0인 셈이다. 그래서 [[Windows Me]] 역시 숨김 속성 해제를 하면 MS-DOS 관련 파일들이 보였으며 이 파일들을 잘못 건드리면 Windows 부팅이 불가능했다. [[Windows]] 포함 버전들 중 7의 경우엔 [[해커]]들이 독립적으로 설치, DOS로 직접 부팅할 수 있도록 추출한 버전이 있으나, 8.0의 경우엔 단독으로 설치하여 부팅하는 것이 불가능하다. [[Windows NT]]는 MS-DOS와 무관하게 설계한 운영 체제였으나, 호환성을 보장하기 위해 NTVDM(NT Virtual DOS Machine)을 넣었다. 이는 [[Windows 10]]에까지 이어졌다. x86 CPU의 가상 8086 모드를 이용한 기능인데, 이 덕분에 완전하지는 않지만 MS-DOS 응용 프로그램과 16비트 윈도우 응용 프로그램은 WoW(Windows on Windows)의 도움까지 받아 어느 정도는 실행이 가능했다. 설정만 잘 만지면 게임도 어느 정도는 돌릴 수 있었을 정도였다. 그러나 [[Windows Vista]] 이후부터는 64비트 운영 체제가 등장했고, 이를 설치한 경우 [[AMD64]]의 롱 모드(64비트 모드)에서는 가상 8086 모드를 사용할 수 없기 때문에 NTVDM과 WoW를 제거할 수밖에 없었으며, 그래서 더 이상 MS-DOS를 비롯한 16비트 응용 프로그램을 사용할 수 없게 되었다. 64비트 운영 체제에 있는 WoW는 WoW 64로서 32비트 응용 프로그램의 실행을 돕고 있다. 32비트 운영 체제를 설치하면 [[Windows 7]]까지는 어느 정도 실행이 가능했으나, [[UEFI#s-8|UEFI GOP]] 규격 드라이버가 들어가 있는 최신 그래픽 카드와 디스플레이 드라이버 모델이 WDDM(Windows Display Driver Model)으로 바뀐 [[Windows 8]]은 전체 화면 모드로 전환하는 DOS 응용 프로그램은 경고 메시지를 띄우며 실행이 되지 않는다. 이유는 UEFI GOP 규격 드라이버와 WDDM 1.2 규격의 디스플레이 장치 드라이버는 과거 VGA의 비디오 모드를 설정할 수 있었던 BIOS 인터럽트 호출, int 10H를 더 이상 지원하지 않기 때문이다. NT 기반의 윈도우에서는 '[[명령 프롬프트]]'(cmd.exe)로 MS-DOS 비슷한 환경을 사용할 수 있다. 다만 cmd.exe는 명령어 환경을 MS-DOS처럼 흉내낸 프로그램이지 실제 MS-DOS는 아니다. 리눅스나 유닉스의 셸에서도 커스터마이징을 하면 MS-DOS 명령어를 쓸 수 있다. 예를 들어 리눅스에서 'dir'을 치면 'ls-l'를 실행한 것과 같게 만들 수 있다는 이야기이다. MS-DOS의 명령어를 거의 그대로 준용하지만 어떤 DOS 응용 프로그램도 실행할 수 없다. 명령 프롬프트에서만 먹히는 각종 고급 기능 때문에 아직도 사용하는 사람은 있는 편이다. 어쨌거나 아직도 cmd.exe의 존재로 인해 MS-DOS의 영향력은 완전히 사라지지는 않은 셈이다. 이후에 PowerShell이라는 것도 나왔는데 이건 MS-DOS와는 거리가 멀고 POSIX 호환에 가깝다. [[https://github.com/leecher1337/ntvdmx64|NTVDMx64]]라는 NTVDM를 64비트 윈도우에 이식하는 프로젝트가 있다. 다만 유출된 Windows NT 4.0 소스 코드를 사용한거라서 저작권 문제로 사용자가 직접 소스 코드를 받아서 컴파일해야 하지만 누군가가 컴파일된 버전을 올렸다.[* [[https://github.com/leecher1337/ntvdmx64/issues/7|#]]] 참고로 다운받으면 백신 프로그램에서 바이러스로 진단하는데, 오진이므로 안심해도 된다.[* [[https://github.com/leecher1337/ntvdmx64/issues/10|개발자 답변]]] 참고로 이 프로그램의 장점으로는 '''그래픽 모드''' 프로그램도 '''창에서''' 실행할 수 있다.[* 32비트 순수 NTVDM에서는 그래픽 모드 전환 시 강제로 전체 화면 모드로 전환된다. 참고로, Windows Vista와 Windows 7의 경우 VGA 호환 그래픽 드라이버를 사용해야만 도스나 콘솔 프로그램에서 전체 화면 모드 사용이 가능하다.] 단점은 16비트 Windows용 실행파일은 사용 불가능하지만 16비트용 Windows 앱도 실행할수있는 OTVDM이 개발되었다. MS-DOS에서는 [[윈도우]] 프로그램들을 실행할 수 없다. 실행하면 "This program cannot be run in DOS mode."라는 오류 메시지가 뜨면서 실행이 안 된다. 번역하면 "DOS 모드에서 이 프로그램을 실행할 수 없습니다."로, 이는 초기 윈도우 실행 파일의 확장자가 EXE로 MS-DOS와 동일하였고 윈도우에서도 DOS 응용 프로그램 호환성을 위하여 DOS 모드를 지원했기 때문에, 윈도우 프로그램을 MS-DOS 또는 DOS 모드에서 실행하는 실수를 대비하여 삽입한 오류 메시지이다(exe 프로그램의 확장자를 txt로 바꿔도 "This program cannot be run in DOS mode."가 그대로 나온다). 윈도우용 실행 파일을 16진수 편집 프로그램으로 열어보면, PE(Portable Executable) 헤더 앞에 짤막한 도스 프로그램이 붙어 있는 것을 볼 수 있는데, 바로 이 오류 메시지를 출력하는 프로그램이다. 한글 MS-DOS에서도 이 메시지가 영어로 뜬다. 16비트 윈도우 프로그램들은 "This program requires Microsoft Windows."라고 나오며, 직역하면 "이 프로그램은 Microsoft Windows가 필요합니다."이다. 그리고 16비트 윈도 프로그램들은 PE 파일 구조체가 아닌 '''NE'''(New Executable) 파일 구조체를 쓴다. 참고로 EXE 파일의 PE 헤더에는 DOS 헤더 및 스텁을 먼저 포함했으며 크기는 64 바이트(0x40)이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기