64비트 윈도우에서 16비트 옛날 프로그램 실행하기
원제 16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows
101 포인트댓글 27
Key Point
현대의 64비트 윈도우 시스템에서 구동 불가능했던 20~30년 전 16비트 소프트웨어를 다시 쓸 수 있게 해주는 기술로, 하드웨어 에뮬레이션과 API 변환을 통해 낡은 윈도우 프로그램들의 생명을 연장시킨다.
핵심 요약
- winevdm을 포트한 도구로 64비트 윈도우에서 Windows 1.x부터 3.1까지 16비트 윈도우 프로그램을 실행할 수 있다.
- CPU 에뮬레이터, Wine 기반의 Win16→Win32 변환 코드, 16비트 DOS 에뮬레이션을 포함하며, 64비트 윈도우에서 LDT 수정이 불가능한 제약을 CPU 에뮬레이터로 해결한다.
- 64비트 윈도우가 16비트 인스톨러를 감지할 때 대체 인스톨러를 시작하는 메커니즘을 활용해 설치를 가능하게 한다.
- 일부 Win16 프로그램이 %WINDIR% 경로에 ini 파일을 저장하려는 시도를 리다이렉트하는 방식으로 호환성 문제를 해결한다.
- winevdm.exe 명령어로 직접 16비트 실행 파일을 실행할 수 있으며, DOS 실행 파일도 지원하지만 DOS 에뮬레이션은 불완전해서 DOSBox나 MS-DOS Player 사용을 권장한다.
- Visual Studio 2017 또는 cmake로 컴파일할 수 있으며, 사전에 Microsoft Visual C++ Redistributable for Visual Studio 2017 (32-bit)이 필요하다.