Windows 11에 여전히 살아있는 Windows 95의 메모리 관리자
원제 Why Windows 11 still ships with Windows 95's memory manager hidden inside it
121 포인트댓글 85

Key Point
30년 전 한 게임의 버그를 감싸기 위해 만들어진 코드가 현재도 최신 OS에 포함돼 있다는 사실은 Windows의 역사적 호환성 추구가 어디까지 진행되는지 보여준다.
핵심 요약
- Windows 11은 Windows 95의 메모리 관리자를 호환성 유지 목적으로 내장하고 있으며, 특히 EmulateHeap이라는 호환성 수정 프로그램이 그 사례다.
- 이 관행의 출발점은 1990년대 SimCity로, SimCity는 Windows 95에서만 실행되도록 하기 위해 마이크로소프트가 특별한 코드를 작성했다.
- 원래 Windows 3.x용 SimCity는 메모리 해제 후 읽기(use-after-free) 버그를 가지고 있었는데, Windows 3.x에서는 메모리가 남아있어 작동했다.
- Windows 95 베타에서 SimCity가 깨지자, 마이크로소프트는 게임 업데이트를 기다리지 않고 OS에 SimCity 감지 코드를 추가해 메모리를 즉시 해제하지 않도록 변경했다.
- 다른 앱들도 Windows 95 힙의 특성에 의존했는데, 이후 Windows 버전에서는 메모리 관리 방식이 달라져 이들 앱이 충돌했다.
- EmulateHeap은 HeapCreate부터 LocalLock, GlobalReAlloc 등 모든 힙 함수 호출을 Windows 95 방식으로 대체하는 호환성 수정이다.
- 마이크로소프트는 Windows 95 힙 관리자의 소스코드를 복사하고 재컴파일해서 호환성 인프라에 추가했으며, 이는 Windows 95 커널의 상당 부분이 현재도 Windows 11에 포함돼 있다는 의미다.
- EmulateHeap은 특정 앱에만 활성화될 때 하드드라이브에서 로드되므로, 백그라운드에서 Windows 95가 실행되지는 않는다.
- Windows ADK의 Compatibility Administrator 도구를 통해 Windows 11 26H2에서 EmulateHeap을 확인할 수 있다.
- Windows 11 22H2 업데이트 이후 GTA Vice City 같은 게임이 음성을 잃거나 Need for Speed: Most Wanted가 충돌하는 등 호환성 수정이 모든 경우에 작동하지는 않는다.
- 마이크로소프트는 Windows 95 스타일 속성 대화상자를 WinUI 3로 교체하는 중이면서도, 소수의 레거시 앱을 위해 Windows 95 힙 관리자는 계속 유지하고 있다.