Windows 11'de hâlâ açılan 1992 tarihli CD çalar: geriye uyumluluğun 34 yıllık izi
Bir geliştirici, Windows 11'de hiç değiştirilmeden çalışan en eski pencereli programı aradı ve 1992'de derlenmiş bir CD çalara ulaştı. Hikâye, Microsoft'un eski yazılımı ayakta tutma ısrarını anlatıyor.

Windows 11 yüklü bir bilgisayarda küçük, eski usul bir pencere açılıyor: bir CD çalar. Programın dosyası 16 Kasım 1992'de son hâline getirilmiş, yani bağlanmış (linklenmiş). Üstünde çalıştığı sistem ise 2026'nın güncel Windows 11'i. Arada otuz dört yıla yakın bir zaman, iki büyük işlemci mimarisi geçişi ve onlarca Windows sürümü var; buna rağmen dosyaya tek bayt dokunulmadan pencere açılıyor ve uygun koşullar sağlanınca müzik çalıyor.
Bu sahne, "enlyth" takma adıyla yazan bir geliştiricinin 26 Ekim 2026'da kişisel blogunda yayımladığı küçük bir merak deneyinden çıktı. Sorusu basitti: Windows 11'de, değiştirmeden ya da öykünücü kullanmadan çalışan en eski grafik arayüzlü uygulama hangisi? Yazının ardından Hackaday de konuyu duyurdu.
Cevap, eğlenceli bir rekordan fazlasını anlatıyor. Microsoft, eski programların yeni Windows sürümlerinde de çalışması için on yıllardır özel emek harcıyor; bu ısrar yazılım dünyasında hem övülen hem eleştirilen bir mühendislik tercihi. Deney, o tercihin bugün hâlâ ne kadar geriye uzandığını, nerede de bilinçli olarak durduğunu gösteriyor.
İlk durak: 1993 tarihli bir FreeCell
enlyth, yazısına beklentisini açıkça yazarak başlıyor: "Windows'un mükemmel geriye uyumluluğunu düşününce cevabın etkileyici derecede eski bir şey olmasını bekliyordum." Ama hemen bir engelle karşılaşıyor. Windows 11, 16 bitlik Windows programlarını kendi başına çalıştıramıyor. Bu yüzden arama, 32 bit dünyasının ilk yıllarına, yani Windows NT dönemine kaymak zorunda.
Yıllar önce anonim bir forumda aynı soruyu sorduğunda biri ona Win32s'i önermiş. Win32s, 16 bitlik Windows 3.1 ve 3.11 üzerinde 32 bitlik programların çalışabilmesi için Microsoft'un çıkardığı bir çalışma ortamıydı; bir tür köprü. Beta sürümü Ekim 1992'de, 1.10 sürümü ise Temmuz 1993'te Windows NT 3.1 ile aynı dönemde yayımlandı. Çoklu iş parçacığı yoktu, programlar 16 MB bellekle sınırlıydı.
Bu paketin içinde sürpriz bir oyun vardı: FreeCell. Wikipedia'daki kayda göre oyunun Microsoft sürümünü yazan Jim Horne'du; FreeCell, Win32s'e 32 bitlik "thunking" katmanının, yani 16 bit ile 32 bit kodu birbirine bağlayan çeviri tabakasının doğru kurulup kurulmadığını sınayan bir uygulama olarak eklenmişti. Oyunun asıl ünlenmesi ise Windows 95 ile oldu.
enlyth erken bir Win32s sürümünden 22 Şubat 1993 tarihli FREECELL.EXE'yi buldu ve Windows 11'in güncel sürümünde çalıştırdı. Oyun hiçbir değişiklik yapılmadan açıldı ve tamamen oynanabilir durumdaydı. Yazar, yazının yayımlandığı tarihte bunun 33 yıl 8 aylık bir uygulama olduğunu not ediyor.
Daha geriye: hazır olmayan NT derlemeleri
Bir süre sonra soru yeniden aklına düşen enlyth, Internet Archive'daki eski Windows sürümlerini taramaya başladı ve Windows NT 3.1'in yayın öncesi derlemelerine ulaştı. Burada iki engel çıktı.
- Dosya biçimi: 1991 tarihli en eski derlemeler, Windows'un çalıştırılabilir dosya biçimi olan PE'nin (Portable Executable) henüz taslak hâlini kullanıyordu. Bugünkü Windows bu taslağı tanımıyor.
- Çağrı kuralı: 1992'nin ortalarına kadarki derlemeler, Windows işlevlerini çağırırken "cdecl" kuralını varsayıyordu; oysa Windows API'si "stdcall" kuralını kullanır.
İkinci madde biraz açıklama istiyor. Bir program bir işlevi çağırırken ona vereceği bilgileri, yığın denen geçici bir bellek alanına koyar. İş bitince bu bilgilerin oradan kaldırılması gerekir. cdecl kuralında masayı çağıran taraf toplar, stdcall kuralında çağrılan taraf. Erken NT programları masayı kendileri toplayacaklarını sanıyordu, Windows 11 de toplayıp çıkıyordu. Sonuç: aynı masa iki kez toplanıyor, ikinci seferde başkasına ait tabaklar da gidiyor. enlyth'in tarifiyle program bu yüzden çöküyor.
Asıl ödül: 16 Kasım 1992 tarihli CD çalar
Bu derlemeler arasında enlyth'in dikkatini çeken dosya, 347 numaralı derlemedeki CDPLAYER.EXE oldu. 16 Kasım 1992'de bağlanan bu programın döneminde çağrı kuralı sorunu artık giderilmişti. Aynı derlemedeki diğer programlar ise kendi içlerinde taşıdıkları C çalışma kitaplıklarında çöküyordu.
CD çaları kurtaran ayrıntı küçük ama anlamlı: Program kendi kitaplığını taşımak yerine sistemin crtdll.dll dosyasını kullanıyor. Windows 11 de bu dosyayı hâlâ SysWOW64 klasöründe barındırıyor. Yani otuz dört yıl önce yazılmış bir program, aradığı parçayı bugünkü sistemde aynı adla buluyor.
İlk denemede program, bilgisayarda CD-ROM sürücüsü bulunmadığını söyleyip duruyor; çünkü enlyth'in bilgisayarında öyle bir sürücü yok. Yazar, cdemu.dll adlı küçük bir DLL ile sahte ses verisi içeren bir sürücü taklit ettiğinde program şarkı çalmaya başlıyor. Bu, programın kendisine dokunulmadığı, yalnız eksik donanımın yerine bir taklit konduğu anlamına geliyor.
16 bit kapısı neden kapalı?
Peki asıl eski programlar, yani Windows 1.0, 2.0 ve 3.x için yazılmış 16 bitlik uygulamalar neden yarışın dışında? Microsoft'un geliştirici belgeleri bunu açıkça yazıyor: 64 bitlik Windows, 16 bitlik Windows uygulamalarını çalıştırmayı desteklemiyor. Belgede gösterilen ana gerekçe, 64 bit Windows'ta tanıtıcıların (handle) 32 anlamlı bit taşıması. Tanıtıcı, işletim sisteminin bir pencereye ya da dosyaya verdiği kimlik numarası gibi düşünülebilir. Bu numaralar kırpılarak 16 bitlik bir programa veri kaybı olmadan aktarılamıyor. Böyle bir program başlatılmak istendiğinde sistem "geçersiz çalıştırılabilir biçim" anlamına gelen ERROR_BAD_EXE_FORMAT hatasını veriyor.
32 bitlik Windows'ta durum farklıydı. Microsoft'un uyumluluk belgelerine göre NTVDM (NT Virtual DOS Machine), 1993'te Windows NT ailesinin 32 bitlik sürümlerine eklenen ve 16 bitlik Windows ile DOS programlarını çalıştıran bileşendi. 32 bitlik Windows 10'da bile isteğe bağlı bir özellik olarak açılabiliyordu. Ancak aynı belge, NTVDM'nin x64 ve ARM sürümlerde desteklenmediğini, bu sürümlerin hiçbir türden 16 bit x86 kodu çalıştırmadığını belirtiyor. Windows 11 ise Microsoft'un sistem gereksinimlerinde 64 bitlik işlemci şart koşuyor. Kısacası Windows 11'de 16 bite açılan yerleşik bir kapı kalmadı.
WOW64: 32 bit programların sessiz tercümanı
32 bitlik eski programların Windows 11'de hâlâ açılmasını sağlayan katmanın adı WOW64. Microsoft belgeleri onu, 32 bitlik Windows uygulamalarının 64 bitlik Windows'ta sorunsuz çalışmasını sağlayan ve sistemle birlikte gelen, ayrıca açılması gerekmeyen bir katman olarak tanımlıyor. 32 bitlik program sistem çağrısı yaptığında WOW64 araya giriyor, bilgileri 64 bite genişletip asıl çağrıyı yapıyor.
Bu katmanın bir de kafa karıştıran yan etkisi var. 64 bitlik Windows'ta System32 klasörü 64 bitlik dosyalara ayrılmış durumda; 32 bitlik kitaplıklar ise SysWOW64 klasöründe duruyor. 32 bitlik bir program System32'ye erişmek istediğinde WOW64 onu sessizce SysWOW64'e yönlendiriyor. Yani adında "32" geçen klasörde 64 bitlik, "64" geçen klasörde 32 bitlik dosyalar var. 1992'nin CD çaları da aradığı crtdll.dll'i bu yönlendirme sayesinde buluyor.
Hileyle 1985: Reversi
enlyth, yazısının sonuna "hile yaparsak" diye bir bölüm ekliyor. otvdm adıyla da bilinen winevdm, 16 bitlik Windows programlarını 64 bitlik Windows'ta çalıştırmak için geliştirilmiş, GPL-2.0 lisanslı açık kaynaklı bir proje. Proje sayfasına göre Wine'ın 16 bitlik çağrıları 32 bitlik karşılıklarına çeviren yaklaşımını kullanıyor ve içinde bir işlemci öykünücüsü barındırıyor; Windows 1.x'ten 3.1'e kadarki programları hedefliyor.
enlyth bu araçla Windows 1.01'den alınmış, 15 Kasım 1985 tarihli REVERSI.EXE'yi Windows 11'de çalıştırdı ve oyun tamamen oynanabilir durumdaydı. Reversi, Windows 1.0 ile birlikte gelen, fareyle oynanan bir tahta oyunuydu. Yazar, öykünücü kullanmanın "hile gibi hissettirdiğini" kabul ediyor, ama sonucu paylaşmaya değer bulmuş.
Tarihlerin denk gelişi de ilginç: Reversi dosyasının tarihi 15 Kasım 1985, CD çaların bağlanma tarihi 16 Kasım 1992. İki dosya arasında tam yedi yıl ve bir gün var. Biri 16 bit dünyasının, diğeri 32 bit dünyasının en eski yolcularından.
| Tarih | Olay |
|---|---|
| 15 Kasım 1985 | Windows 1.01'deki REVERSI.EXE dosyasının tarihi |
| 20 Kasım 1985 | Windows 1.0 ABD'de satışa çıktı |
| Ağustos 1990 | 32 bitlik Win32 API'si tanıtıldı |
| Ekim 1992 | Win32s'in beta sürümü çıktı |
| 16 Kasım 1992 | CDPLAYER.EXE (347 numaralı derleme) bağlandı |
| 22 Şubat 1993 | Win32s'teki FREECELL.EXE dosyasının tarihi |
| Temmuz 1993 | Windows NT 3.1 ve Win32s 1.10 yayımlandı |
| 26 Ekim 2026 | enlyth'in deney yazısı yayımlandı |
Tablodaki dosya tarihleri enlyth'in yazısından, sürüm tarihleri Wikipedia'daki Windows 1.0, Windows NT 3.1 ve Win32s maddelerinden derlendi.
Takıntının kökü: SimCity ve uykusuz geceler
Bu uyumluluk ısrarının nereden geldiğini anlatan en bilinen metinlerden biri, yazılımcı Joel Spolsky'nin 2004'te Joel on Software'de yayımladığı uzun deneme. Spolsky, Microsoft içinde iki zıt anlayış olduğunu söyler ve birine, 1992'den beri Windows ekibinde çalışan Raymond Chen'in adını verir.
Spolsky'nin anlattığı örnek şöyle: SimCity, belleği serbest bıraktıktan hemen sonra kullanmaya devam eden bir hata taşıyordu. DOS'ta sorun çıkarmayan bu hata, Windows'ta oyunu çökertiyordu. Windows ekibi oyunun kodunu söküp hata ayıklayıcıda adım adım izledi, hatayı buldu ve SimCity çalışıyorsa bellek yöneticisini, serbest bırakılan belleğin hâlâ kullanılabildiği özel bir kipe sokan ek kod yazdı. Spolsky'ye göre bu istisna değildi; kayıt defterinde Windows'un özel muamele ettiği uygulamaların uzun bir listesi duruyordu.
Spolsky aynı denemede Chen'in şu sözlerini aktarıyor: "İnsanlar Microsoft'u işletim sistemi yükseltmelerinde uygulamaları kasten bozmakla suçladığında özellikle öfkeleniyorum. Herhangi bir uygulama Windows 95'te çalışmazsa bunu kişisel bir başarısızlık sayardım. Üçüncü taraf programlardaki hataları, sırf Windows 95'te çalışmaya devam etsinler diye düzeltmek için nice uykusuz gece geçirdim." Spolsky, Apple'daki Macintosh geliştiricilerinin ise öteki kampta durduğunu, bu yüzden ilk dönem Mac uygulamalarının çok azının hâlâ çalıştığını yazıyor.
FreeCell'in ve CD çaların bugün açılabilmesi, bu anlayışın 32 bit tarafında hâlâ sürdüğünü gösteriyor. 16 bit tarafındaki sınır ise Microsoft'un uyumluluğu sonsuza kadar taşımadığını, mimari bir zorunlulukla karşılaştığında kapıyı kapattığını.
Deneyin sınırları
Sonuç, tek bir kişinin kendi bilgisayarında yaptığı denemeye dayanıyor; bağımsız olarak tekrarlanmış bir ölçüm değil. "En eski" iddiası da yazarın bulabildiği dosyalarla sınırlı: Internet Archive'da ya da başka arşivlerde daha eski ve çalışan bir 32 bitlik program bulunabilir. FreeCell için verilen tarih dosyanın değiştirilme tarihi; derlenme anıyla birebir aynı olmayabilir. CD çaların ses çalabilmesi de bir taklit sürücüye bağlı.
Açık kalan soru şu: Microsoft'un belgelerine göre WOW64, ARM işlemcili 64 bitlik Windows'ta da 32 bitlik x86 programlarını bir öykünücüyle çalıştırabiliyor. 1992'nin CD çaları ARM işlemcili bir Windows 11 dizüstünde de açılır mı? Bunu henüz deneyen olduğuna dair bir kayıt bulamadık. Belki sıradaki meraklı, yarışın bitiş çizgisini biraz daha geriye çeker.
Fotoğraf: Rezonansowy, Microsoft, Public domain, Wikimedia Commons
Kaynak: Yudum — https://www.yudum.net/haber/windows-11de-calisan-en-eski-uygulama-1992-cd-calar.html — Yazdırma tarihi:
















