TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 24 READS

윈도우 11 안에 아직 살아있는 윈도우 95 메모리 관리자의 정체

윈도우 11 안에 아직 살아있는 윈도우 95 메모리 관리자의 정체
SOURCE IMAGE · HACKER NEWS

윈도우 11은 최신 26H2 빌드에서도 윈도우 95 커널의 일부를 그대로 품고 있다. 정확히는 윈도우 95의 힙(heap) 관리자 소스 코드를 다시 컴파일해 호환성 인프라에 끼워 넣은 것으로, 'EmulateHeap'이라는 호환성 수정(shim)을 통해 특정 구형 애플리케이션에만 적용된다. 마이크로소프트 엔지니어 레이먼드 챈이 2010년 'Windows Confidential' 칼럼에서 설명한 이 구조를, Windows Latest는 실제 26H2 PC에서 확인했다고 전했다.

심시티에서 시작된 호환성 집착

이야기의 뿌리는 심시티다. 조엘 스폴스키(스택 오버플로 공동 창업자이자 전직 마이크로소프트 엔지니어)가 2000년에 쓴 글에서, 윈도우 3.x용 심시티를 개발한 존 로스의 증언을 인용해 소개한 일화다. 로스는 '방금 해제한 메모리를 다시 읽는' 버그를 실수로 남겨 두었다고 인정했다. 애플리케이션은 실행 중 운영체제에 메모리를 요청하고 다 쓰면 반환하는데, 반환한 메모리를 이후에 다시 읽으면 'use-after-free'라 불리는 버그가 된다.

이 버그는 윈도우 3.x에서는 드러나지 않았다. 스폴스키의 표현대로 '메모리가 어디로도 사라지지 않았기' 때문이다. 그러나 윈도우 95 베타에서 심시티가 깨졌고, 마이크로소프트는 게임의 패치를 기다리는 대신 운영체제 쪽에 손을 댔다. 심시티가 실행 중인지 확인해, 그렇다면 메모리를 즉시 반환하지 않는 특수 모드로 할당자를 돌린 것이다. 한 게임의 버그를 덮으려고 OS를 고친 셈이다.

하나의 땜질에서 재사용 가능한 구조로

심시티 대응은 일회성이었지만, 비슷한 가정을 한 프로그램은 적지 않았다. 일부 앱은 해제한 메모리에 예전 값이 그대로 남아 있을 것이라 기대하는 등 윈도우 95 힙의 특유한 동작에 의존했고, 메모리를 다르게 관리하는 이후 윈도우에서는 이런 앱들이 그대로 죽어 버렸다. EmulateHeap은 바로 이 문제를 겨냥한다. HeapCreate부터 LocalLock, GlobalReAlloc에 이르기까지 앱의 힙 호출을 가로채, 윈도우 95처럼 동작하는 대체 구현으로 돌려준다.

구현 방식에 대해 챈은 '극도로 단순하면서도 완전히 미친 짓'이라고 표현했다. 마이크로소프트가 윈도우 95 힙 관리자 소스를 그대로 복사해 다시 컴파일한 뒤 호환성 인프라에 붙였기 때문이다. 그의 말대로 '윈도우 95 커널의 상당 부분이 윈도우 애플리케이션 호환성 프레임워크 안에 복사본으로 들어 있는' 상태다. 다만 이 옛 코드는 특정 앱에 EmulateHeap이 켜졌을 때만 디스크에서 로드되므로, 평소에 윈도우 95가 몰래 돌아가는 것은 아니다. EmulateHeap은 심시티용으로 쓴 그 코드 자체는 아니며, 둘 다 윈도우 XP의 숨은 호환성 데이터베이스로 이어지는 같은 뿌리에서 나왔지만 별개의 수정이다.

실무자가 직접 확인하는 방법과 그 한계

이 수정은 마이크로소프트가 IT 관리자에게 무료로 제공하는 Compatibility Administrator 도구에서 눈으로 확인할 수 있다. 마이크로소프트는 호환성 수정(shim)을 '애플리케이션의 API 호출을 가로채는 작은 코드 조각'으로 정의한다. 해당 도구는 Windows 평가 및 배포 키트(ADK)에 포함되며, 2026년 9월 릴리스가 윈도우 11 26H2를 공식 지원한다. Windows Latest는 ADK의 Application Compatibility Tools에서 32비트 Compatibility Administrator를 실행하고 새 호환성 모드 데이터베이스를 만드는 과정을 거쳐 목록에서 EmulateHeap을 찾아냈다고 밝혔다.

하지만 목록에 수정이 있다는 사실과 그것이 실제로 작동한다는 사실은 다르다. 윈도우 11 22H2 업데이트 이후에는 이 shim을 켠 상태에서 GTA 바이스 시티의 소리가 사라지거나 니드 포 스피드 모스트 원티드가 충돌한다는 보고가 나왔다. 구형 앱을 다뤄야 하는 실무자라면, 호환성 shim을 켜고 끄는 선택이 문제를 해결할 수도, 또 다른 문제를 만들 수도 있다는 점을 염두에 둘 필요가 있다.

흥미로운 대목은 마이크로소프트가 윈도우 95 시절의 속성 대화상자를 WinUI 3로 교체하면서도, 소수의 오래된 앱을 위해 윈도우 95의 힙 관리자는 계속 끌어안고 있다는 점이다. 반면 3D 핀볼은 팀이 며칠을 쏟기 어려웠던 64비트 버그 때문에 결국 빠졌다. 어떤 레거시는 OS 안에 통째로 보존되고 어떤 레거시는 조용히 버려진다는, 마이크로소프트식 호환성 판단의 두 얼굴을 보여 주는 사례다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://www.windowslatest.com/2026/10/19/why-windows-11-stil...
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...