· kaynak Hacker News – Front Page (native)
Windows 11, EmulateHeap shim'i aracılığıyla hâlâ Windows 95'in heap yöneticisini taşıyor
Windows 11 26H2, 1990'ların bellek davranışına bağımlı uygulamalar için EmulateHeap uyumluluk shim'i tarafından etkinleştirilen, yeniden derlenmiş bir Windows 95 heap yöneticisi kopyasını hâlâ içeriyor.

Windows 11'in içinde 1995 tarihli bir heap yöneticisi
Windows 11 hâlâ Windows 95 çekirdeğinin çalışan bir parçasını içeriyor. Windows Latest'in haberine göre, EmulateHeap adlı bir uyumluluk shim'i Windows 11 26H2 ile birlikte geliyor ve eski uygulamalara Windows 95'in davrandığı gibi davranan bir heap yöneticisi sunuyor. Shim, Microsoft'un uygulama uyumluluk çerçevesinin içinde yer alıyor ve yalnızca buna ihtiyaç duyduğu işaretlenen programlar için etkinleşiyor.
Kalıbı belirleyen SimCity hatası
Hikâye, Windows 3.x için yapılmış SimCity ile başlıyor. Stack Overflow'un kurucu ortağı ve eski Microsoft mühendisi Joel Spolsky, oyunun o sürümünü programlayan Jon Ross'un anlattıklarına dayanarak bu hikâyeyi 2000 tarihli bir yazıda yeniden anlattı. Ross, oyunda bir use-after-free hatası bırakmıştı: oyun, belleği serbest bıraktıktan sonra da okumaya devam ediyordu. Bunun kimse farkında olmadı, çünkü Windows 3.x'te serbest bırakılan bellek fiilen yerinde kalıyordu ve SimCity baktığında eski içerikler hâlâ oradaydı.
Oyun, belleği farklı ele alan Windows 95 beta sürümlerinde bozuldu. Yamalanmış bir sürümü beklemek yerine Microsoft, işletim sistemine bir algılama mantığı ekledi: SimCity'nin çalıştığını gördüğünde bellek ayırıcısı, blokları serbest bırakmayı erteleyen bir moda geçiyordu. Windows Latest'in de belirttiği gibi, EmulateHeap o özgün çözümün değil, ayrı ve daha sonraki bir düzeltmenin ürünü; ancak ikisi de kusurlu eski yazılımları çalışır tutma çabasından doğdu.
EmulateHeap nasıl çalışıyor
Microsoft mühendisi Raymond Chen ayrıntıları 2010'da Windows Confidential köşesinde anlattı. Yalnızca oyunlar değil, birçok program Windows 95 heap'inin hoşgörülü doğasına yaslanmıştı: serbest bırakılan belleği okuyor ve eski değerlerin hâlâ orada olmasını bekliyorlardı. Belleği daha katı biçimde yöneten Windows sürümlerinde bu programlar çöküyordu.
EmulateHeap bunu, uygulamanın heap ile ilgili API çağrılarını — HeapCreate, LocalLock, GlobalReAlloc ve diğerlerini — yakalayıp Windows 95 semantiğini yeniden üreten yerine koymaların yönlendirerek çözüyor. Chen, bu yapının tasarım olarak basit ama sonuçları bakımından şaşırtıcı olduğunu anlattı: Microsoft, Windows 95 heap yöneticisinin kaynak kodunu kopyaladı, yeniden derledi ve uyumluluk altyapısına ekledi. Bunun pratik sonucu, Windows 95 çekirdeğinin önemli bir bölümünün modern Windows sürümlerinin içinde yolculuk etmesi. Chen ayrıca, eski kodun yalnızca shim bir uygulama için gerçekten etkinleştirildiğinde diskten yüklendiğini belirtti; yani sıradan bir PC'de 1995'ten hiçbir şey arka planda çalışmıyor.
Güncel bir makinede görmek
Windows Latest, shim'i bugün nasıl bulacağınızı adım adım anlatıyor. Windows Assessment and Deployment Kit'i kurun — Eylül 2026 sürümü resmî olarak Windows 11 26H2'yi destekliyor — ve yalnızca Application Compatibility Tools özelliğini seçin. Ardından, o dönemin yazılımlarının çoğu 32-bit olduğu için Compatibility Administrator'ın 32-bit sürümünü açın, yeni bir uyumluluk modu veritabanı oluşturun ve kullanılabilir düzeltmeler listesinde EmulateHeap'e kadar ilerleyin. Microsoft bu düzeltmeleri, uygulamalardan gelen API çağrılarını yakalayan küçük kod parçaları olarak tanımlıyor.
Listede yer almak, güvenilir biçimde çalışmak anlamına gelmiyor. Rapora göre Windows 11 22H2 güncellemesinin ardından kullanıcılar, shim'i etkinleştirmenin kendi başına sorunlara yol açtığını gördü; bunlara Grand Theft Auto: Vice City'de ses kaybı ve Need for Speed: Most Wanted'ta çökmeler dahildi.
Microsoft'un neyi koruyup neyi attığında ironik bir tezat var. Şirket, onlarca yıllık Properties iletişim kutusunu WinUI 3 ile yeniden inşa ederken, bir avuç eski program için hâlâ bir Windows 95 heap yöneticisi dağıtıyor ve 3D Pinball'ı, ekibin günler harcamaya değer bulmadığı bir 64-bit hatası nedeniyle tamamen kaldırmıştı.
Neden önemli
EmulateHeap, bir platformun geriye dönük uyumluluk uğruna ne kadar ileri gidebileceğinin bir vaka çalışması: yamalanmamış oyunların ve iş uygulamalarının çalışmaya devam etmesi için otuz yıllık çekirdek kodu taşımak. Geliştiriciler için bu, tanımsız davranışın sessizce yük taşıyan bir yapıya dönüşebileceğinin ve bir platform satıcısının son kullanıcıları üzmemek için bu hataları kendi üzerine alabileceğinin bir hatırlatması. Ayrıca stratejinin sınırlarını da ortaya koyuyor — 22H2 raporlarının gösterdiği gibi shim'ler kendileri de yıpranıyor ve her biri, ayakta tuttuğu uygulamaların değerine karşı tartılması gereken bir bakım maliyeti taşıyor.
- #windows
- #backward-compatibility
- #memory-management
- #legacy-software