컴퓨터와 잡동사니 자료

winevdm - 16bit 프로그램을 64bit 운영체제에서 돌린다.

K66Google 2019. 11. 5. 22:21


약 2년전... 

나는 윈도우95/98용 게임을 64비트에서 어떻게든 돌리려고 시도했으나 실패한 이야기를 블로그에 쓴 적이 있었다. (링크)

당시 언급되었던 프로그램들은 2019년 11월 현재 과연 얼마나 발전되었을까?

이 게시물에서는 그 중 하나인 winevdm에 대해 자세하게 설명하고자 한다.


winevdm은 64bit 윈도우 운영체제에서 16bit로 만들어진 윈도우용 프로그램을 돌리게 해주는 프로그램이다.

그렇다면 16bit로 만들어진 윈도우용 프로그램이란게 대체 뭔지 자세히 알아보도록 하자.


( 출처 : 한국어 위키백과 -  EXE 문서 )

도스와 윈도우의 .exe 형태는 5가지의 종류가 있다고 하는데, 이 중에서 winevdm이 지원하는 파일 형식은 바로 16-bit New Executable (일명 NE) 다. 위키백과에선 도스용 NE윈도우용 NE가 있다고 적혀있는데 아마 도스에서 구동되는 NE와 구동되지 않는 NE를 구분하려고 저렇게 쓴 것 같다.



( 스샷 출처 : 링크 )

윈도우용 NE는 말그대로 윈도우용 프로그램이라서 도스에서 돌아가지 않는다. 도스에서 돌리려고 시도하면 'This program must be run under Microsoft Windows' 라는 문구가 뜨면서 실행을 거부한다.

또한 64bit 운영체제에서도 윈도우용 NE가 동작하지 못하는데. 64bit 운영체제는 '가상 86모드'를 지원하지 않기 때문이다. 32bit 운영체제라면 지원이 되서 NTVDM을 통해 실행이 가능하다.

이후에 나온 32-bit Portable Executable (일명 PE), 64-bit Portable Executable (일명 PE32+) 는 64bit 운영체제에서 모두 지원하고 있다.


윈도우용 NE는 얼마 되지 않아 32bit PE로 세대교체가 빠르게 이루어지면서 역사의 뒤로 사라졌고, 64bit 운영체제에선 가상머신을 통해서야 겨우 접할 수 있게 된다. 그러나 게임 하나, 프로그램 하나 구동한다고 가상머신을 설치해야 하는 수고를 하는 건 여간 귀찮은 일이 아니다. 700메가 수준의 게임을 하려고 하드디스크 용량을 5~10기가나 투입하기엔 아까운 마음도 든다. 이 때문에 윈도우용 NE가 실행파일인 게임들은 지금까지 진입장벽이 높았는데, 그걸 winevdm이 해결해 준다는 것이다.


그럼 다운로드를 한번 받아보자.


https://github.com/otya128/winevdm 에 가서 페이지 중간에 있는 Download latest version (unstable) 을 클릭한다.

(stable version은 너무 구버전이라서 안 받는게 낫다.)



클릭하면 아마 이 페이지로 들어올텐데, THIS_BUILD_IS_RECOMMENDED 어쩌구 라고 써 있는 걸 클릭한다.



다른 페이지로 이동했으면 오른쪽의 Artifacts 를 클릭한다.



그러면 압축 파일 하나가 뜨는데 클릭해서 다운로드 받으면 된다.




받은 압축파일을 적당한 곳에 압축 풀기를 한다. 나는 C드라이브 바로 밑에 풀도록 하겠다. (C:\otvdm)



이제 16bit 프로그램 (윈도우용 NE)를 실행해보도록 하자.

otvdmw.exe를 더블 클릭하면 '열기' 대화 상자가 뜨는데 여기서 16bit 프로그램을 지정하면 된다. 

(otvdm.exe는 도스창 버전, otvdmw.exe는 도스창 없는 버전이다.)


나는 예시로 윈도우 3.1용 메모장을 선택해보았다. 과연 어떻게 될까?



윈도우10 64bit에서 윈도우 3.1용 (16bit) 메모장이 실행되는 진풍경이 눈앞에 펼쳐지게 되었다.

다만 불러오기만 되고 (ANSI만, UTF-8은 깨짐) 저장 기능은 지원이 안 된다. (저장 시 공백만 저장됨)

아직 개발 중이라서 완벽하게 구동되지는 않는 것 같다. 그래도 매우 유익한 프로그램인 것은 틀림없다.


16bit programs.zip

끝으로, 16bit 프로그램 일부를 첨부하면서 글을 마친다...