Microsoft가 64비트 Windows를 출시할 때 왜 이런 기능을 만들지 않았는지 정말 이해하기 어려움. 16비트 Windows는 복잡하지 않았으니, 간단한 가상 머신과 API 변환 계층만으로도 큰 개발 공수 없이 30년 넘는 하위 호환성을 유지할 수 있었을 것임.
그런데 16비트 지원을 없애면서 구형 소프트웨어의 업데이트를 지원하고, 그 소프트웨어 때문에 Windows 업그레이드를 미루는 사용자들을 대응하는 데 오히려 더 많은 공수를 들였을 듯함.
하위 호환성에도 한계가 있음. 30년 동안 방치된 소프트웨어를 지원하는 데는 상업적 가치가 거의 없음. Apple, Google, 심지어 Linux도 지원 중단에는 더 적극적임. 비용을 불문하고 하위 호환성을 추구하는 곳은 수백만 달러짜리 계약이 걸린 IBM 메인프레임 정도임.
특히 COM/OLE 통합을 위해 16비트와 32비트 사이에서 HANDLE을 전달하는 작업이 훨씬 까다로워짐.
Microsoft의 https://learn.microsoft.com/en-us/windows/win32/winprog64/ru...에 따르면, 64비트 Windows에서는 핸들의 유효 비트가 32비트라서 데이터를 잃지 않고 16비트로 잘라 전달할 수 없음. 이 때문에 16비트 Windows 애플리케이션 실행을 지원하지 않으며, 실행하면 ERROR_BAD_EXE_FORMAT 오류가 발생함.
Windows용 winevdm은 그 수준의 통합을 포기하지만, Microsoft도 아예 없애기보다는 제약이 있는 WoW16을 제공하는 편이 나았을 수 있음.
반대로 16비트 애플리케이션을 쓰는 기업은 애초에 64비트 환경으로 업그레이드할 의향이 없었을 것임. 32비트 Windows가 95부터 있었으니, Microsoft는 개발자들을 Win32로 전환하도록 유도하는 편이 낫다고 판단한 셈임.
이미 모든 시스템에 32비트 Win32용 Windows on Windows(WoW) 하위 시스템이 있었고, ARM64에서도 어느 정도 지원했음. 내가 본 바로 기본 실행이 안 된 것은 OpenGL뿐인데, Maya3d인가를 위한 Store 앱이 OpenGL을 DirectX로 변환해 줬고 제법 잘 작동했음. Windows on ARM64에서 겪은 가장 큰 문제는 냉각 부족이었음.
본론으로 돌아오면, 16비트 DOS·Windows 환경은 Win32와 크게 다름. 창 처리, 화면 그리기, 메모리 관리가 전혀 달라서 보안 문제로 제거했을 수도 있고, Microsoft에서 흔한 이유인 “유지보수하던 담당자가 퇴사하거나 은퇴해서”였을 수도 있음.
64비트 Windows가 나올 무렵까지 16비트를 쓰던 것은 업데이트할 일이 없는 장비들뿐이었을 것임. 산업용 기계에 내장된 컴퓨터처럼 기계 자체도 이미 지원이 끝난 경우임. 아무도 업그레이드하지 않을 거라면 호환되게 만들 이유가 없음.
몇 달 전에 재미 삼아 이걸로 MS Office 2.0을 설치해 봤는데, 어째서인지 사전 파일을 인식하지 못하는 것 외에는 꽤 잘 작동함. https://files.catbox.moe/dy4bqy.png
궁금해서 일주일 동안 써 봤는데, 요즘의 일상적인 문서 작성, 주로 이메일 작성에도 충분했음. 여기서 만든 doc나 rtf 파일도 Office 365, LibreOffice, Google Docs에서 정상적으로 열 수 있음.
업무용으로는 다른 요구사항 때문에 어렵지만, 개인 문서라면 MS Office 2.0으로도 편지, 학교 과제, 이력서 작성에 충분함.
요즘의 비대한 제품들과 달리 UI가 단순명료해서 오히려 신선함.
16GB MacBook에서 Office 창 10개를 열면 시스템이 완전히 버벅인다는 게 황당함. 동기화를 제외하면 대부분이 쓰는 기능은 늦어도 Office 95에 이미 갖춰져 있었을 것임.
요즘 소프트웨어는 왜 25년 전보다 자원을 1,000배나 쓰면서, 실제로 유용한 기능은 조금밖에 더 제공하지 못하는 걸까?
이제 Windows 11에서 Civ2를 할 수 있겠음! 참고로 Linux의 최신 WINE도 16비트·32비트 애플리케이션을 지원해서, 좋아하는 Civilization 2를 문제없이 실행할 수 있었음.
Civ2는 적어도 Test of Time 버전의 경우 외부 도구 없이도 계속 실행할 수 있게 해 주는 전용 패치가 있음.
Windows 3.1x라니, 좋은 시절이 떠오름. Word도 한 번도 충돌하지 않던 시절임!
Word가 한 번도 충돌하지 않았다니, 나와는 다른 현실에서 살았던 모양임.
16비트 지원은 Windows 2008에서 제거됐음. DOS 지원인 NTVDM만 없어진 게 아니라, 기억이 맞다면 마지막 OS/2 계층과 SFU 계층도 2008에서 제거됐음.
네이티브 실행이 목적이라는 건 알지만, 아주 가벼운 가상 머신 안에서 실행하는 방법도 있음.
드디어 64비트 Windows에서 16비트 Windows를 지원하게 됐음.
Winevdm은 나온 지 꽤 오래됐음.
처음에는 또 AI로 대충 만든 “recomp”나 qemu 기반의 임시방편인가 싶어 걱정했는데, 실제로는 제대로 된 프로젝트이고 AI 저질 생성물이 유행하기 훨씬 전부터 존재했음.