64비트 윈도우에서 윈도우 3.1 앱을 돌리는 otya128/winevdm, 해커뉴스에서 재조명
- otya128/winevdm은 64비트 윈도우에서 윈도우 1.x, 2.x, 3.0, 3.1용 16비트 실행 파일을 직접 돌리는 winevdm 개조판이며, GPL-2.0 라이선스에 커밋 4,082개, 2015년 9월 생성됨
- 64비트 윈도우는 LDT를 수정할 수 없어 NtSetInformationProcess가 항상 오류를 반환하므로, 프로그램에 CPU 에뮬레이터를 넣어 우회함
- wine 기반 Win16에서 Win32로의 변환 코드를 쓰며, 16비트에서 32비트로 넘어가는 릴레이 루틴은 convspec이 자동 생성함
- install.inf로 64비트 윈도우가 16비트 설치 프로그램 대신 대체 설치 프로그램을 띄우는 메커니즘을 이용하며, 설치하면 Win16 바이너리를 바로 실행할 수 있고 %WINDIR% 쓰기도 리다이렉트됨
- DOS 에뮬레이션은 불완전해서 DOSBox나 MS-DOS Player 사용을 권장하며, DOS 버전은 VDMDOSVER 환경 변수로 지정함
Hacker News opinions
드디어 64비트 윈도우에서 16비트 윈도우 지원이 나왔네.
winevdm은 나온 지 꽤 됐는데. 이건 그걸 64비트로 옮긴 거임.
윈도우 3.1x라니 옛날 생각난다. 한 번도 안 죽는 워드 프로세서를 썼다고?
안 죽는 워드라니 나랑 다른 세계에서 사셨나 봐 ㅋㅋ
이거면 윈도우 11에서 Civ2 돌릴 수 있겠네. 리눅스 최신 WINE도 16비트, 32비트 지원해서 내가 아끼는 Civ2는 문제없이 돌렸음.
Civ2는 Test of Time 판 기준으로 외부 도구 없이 돌아가게 하는 패치가 따로 있더라.
몇 달 전에 재미로 MS 오피스 2.0을 설치해봤는데 사전 파일만 인식이 안 되고 꽤 잘 돌더라. 일주일 써봤는데 이메일 정도는 충분했고 요즘 워드프로세서도 그때 만든 파일을 잘 열었음.
개인 문서라면 나도 동의해. 편지나 학교 보고서, 이력서 정도는 오피스 2.0으로 충분함.
요즘 덩치 큰 것들보다 UI가 훨씬 단순하고 편하더라.
16GB 맥북에서 오피스 창 10개 열면 시스템이 완전히 버벅이는데, 쓰는 기능은 오피스 95 수준이면 다 있는데 왜 25년 전보다 자원을 1000배나 쓰는지 모르겠음.
마이크로소프트가 64비트 윈도우 낼 때 왜 이걸 안 만들었는지 이해가 안 됨. 16비트는 복잡하지도 않았고 간단한 VM에 API 변환 계층만 있으면 30년 넘게 호환성을 유지했을 텐데.
16비트와 32비트 경계로 HANDLE을 넘기는 게 COM/OLE 통합에서 특히 아픔. MS 문서에도 64비트 윈도우 핸들은 32비트라 잘라서 넘길 수 없다고 나옴. 제한을 붙여서라도 WoW16을 같이 냈어야 했다고 봄.
16비트 앱 쓰는 회사들은 어차피 64비트로 안 올라왔을 거임. 95부터 32비트가 있었으니 개발자들을 Win32로 밀어붙인 선택이었던 거지.
64비트가 나올 시점에 16비트를 돌리는 곳은 산업 기계에 박힌 임베디드처럼 절대 업데이트 안 될 기계뿐이라 지원할 이유가 없음.
30년 방치된 소프트웨어에 상업적 가치는 없음. 애플, 구글, 리눅스는 지원 끊는 데 더 공격적이고, IBM 메인프레임만 무조건 호환성을 감.
또 AI 슬롭 recomp인가 싶어서 놀랐는데 이건 진짜 정식 프로젝트고 슬롭이 나오기 훨씬 전부터 있었음.
64비트 윈도우 하나에 16비트 윈도우가 정확히 네 개 들어감.