윈도우는 오래된 소프트웨어와의 호환성을 오랫동안 유지해 왔다는 것으로 유명합니다. 이러한 윈도우의 최신 버전인 64비트 윈도우 11 에서 실행할 수 있는 가장 오래된 GUI 애플리케이션은 무엇인지에 대해 해외 엔지니어인 보리스 포피크가 검증했습니다. '윈도우 11 에서 여전히 실행되는 가장 오래된 GUI 애플리케이션'이라는 제목의 블로그 글에서 해외 엔지니어인 보리스 포피크가 검증한 내용은 https://blog.enlyth.com/posts/oldest-windows-gui-app-win-11/ 입니다. 윈도우는 오래된 소프트웨어와의 호환성을 오랫동안 유지해 왔지만, 64비트 윈도우에는 가상 DOS 마신 (NTVDM) 이 탑재되지 않아 윈도우 1.x, 2.x, 3.0, 3.1 등의 16비트 윈도우 전용 애플리케이션은 실행할 수 없습니다. 따라서 포피크는 32비트 에 대응된 윈도우 NT 초기 애플리케이션에 주목했습니다. 익명 포럼에서 얻은 정보를 바탕으로 포피크가 검증한 것은 1993 년 2 월 22 일 출시된 'FREECELL.EXE'의 초기 버전입니다. 이는 오래된 32비트 애플리케이션을 윈도우 3.1 에서 실행하기 위한 확장 프로그램 '윈 32s'에 포함되어 있었으며, 최신 윈도우 11 에서 수정 없이 실행되며 실제로 게임을 플레이할 수도 있었습니다. 즉, 33 년 8 개月前의 GUI 애플리케이션을 64비트 윈도우 11 에서 실행하는 데 성공했다는 것입니다.
그러나 Popik 은 더 오래된 애플리케이션을 찾기 위해 인터넷 아카이브에 보관된 Windows NT 3.1 의 프리리leases 버전을 조사했습니다. 그 결과, 1991 년 초기 버전에서는 현대의 Windows 와 호환되지 않는 PE 포맷의 드래프트 버전이 사용되었음이 밝혀졌습니다. 또한, 1992 년 상반기까지의 버전에서는 프로그램이 Windows 의 기능을 호출할 때의 규칙이 현재와 다르고, 애플리케이션이 충돌하는 문제가 있었다는 것이 밝혀졌습니다. 이러한 가운데 발견된 것은 Windows NT 3.1 의 개발 버전인 빌드 347 에 포함된 'CDPLAYER.EXE'입니다. 이 애플리케이션은 1992 년 11 월 16 일에 출시된 것으로, 음악 CD 를 재생하기 위한 소프트웨어입니다.
Build 347에서는 Windows 기능을 호출할 때의 규칙이 수정되었으나, 다른 애플리케이션들은 C 언어 런타임 라이브러리와 관련된 문제로クラッシュ (crash) 했습니다. 반면, CDPLAYER.EXE 는 시스템 측의 'crtdll.dll' 을 사용하며, 이 파일은 현재 Windows 11 의 'SysWOW64' 폴더 내에 남아있습니다. 따라서 CDPLAYER.EXE 는 Windows 11 에서도 실행이 가능했습니다. Popik 의 PC 에서 CDPLAYER.EXE 를 실행한 결과, Popik 의 PC 에는 CD-ROM 드라이브가 탑재되어 있지 않아 오류가 발생했습니다.
하지만 cdemu.dll 을 사용하여 가상의 오디오 데이터로 드라이브를 시뮬레이션하고 실제로 오디오를 재생할 수 있습니다.
또한, Popik 은 64 bit 버전 Windows 11 에서 16 bit 버전 Windows 를 시뮬레이션하는 otvdm 을 사용할 때, 얼마나 오래된 애플리케이션을 실행할 수 있는지 검증했습니다. 그 결과, 1985 년 11 월 15 일에 출시된 Windows 1.01 을 탑재한 'REVERSI.EXE' 를 Windows 11 에서 실행할 수 있었다는 사실이 확인되었습니다.
원문 보기 | 출처: Gigazine