Microsoft, Windows 11’de System32 ve SysWOW64 Klasörlerinin Neden Farklı Olduğunu Açıkladı
Microsoft, Windows 11’de 64 bit sistem dosyalarının System32, 32 bit dosyaların ise SysWOW64 klasöründe bulunmasının nedenini eski yazılımlarla uyumluluğu koruma yaklaşımıyla açıklıyor. Windows’un 64 bit sürümleri, geçmişten kalan uygulamaların çalışmasını sürdürmek için WOW64 adlı uyumluluk katmanını kullanıyor. Dosya sistemi yönlendirmesi sayesinde 32 bit uygulamalar System32 yolunu çağırdığında Windows, isteği arka planda SysWOW64 klasöründeki karşılık gelen dosyalara yönlendirebiliyor.
System32 Klasörünün Adı Neden 64 Bit Dosyaları İçeriyor?
Windows’un sistem klasörlerindeki isimlendirme, 64 bit mimariden çok daha eski bir döneme dayanıyor. Microsoft, 16 bit Windows sürümlerinde sistem dosyalarını C:\Windows\System dizininde tutarken 32 bit Windows ile birlikte C:\Windows\System32 klasörünü kullanmaya başladı. Dolayısıyla klasördeki “32” ifadesi, başlangıçta 32 bit sistem dosyalarını belirtmek için seçilmişti.

64 bit Windows geliştirildiğinde Microsoft, eski uygulamaların dosya yollarını korumak zorunda kaldı. Pek çok yazılım, sistem klasörünü dinamik olarak öğrenmek yerine System32 yolunu doğrudan kod içinde kullanıyordu. Microsoft’un deneyimli geliştiricilerinden Raymond Chen’in açıkladığı üzere, 64 bit mimariye uyarlanan programların da aynı yolu kullanması bekleniyordu. Microsoft, bu nedenle System32 klasörünü işletim sisteminin yerel mimarisine uygun dosyalar için ayırdı.
Bugünkü 64 bit Windows sürümlerinde System32 klasöründe 64 bit sistem dosyaları bulunurken 32 bit karşılıkları SysWOW64 dizininde tutuluyor. Örneğin kernel32.dll dosyası iki klasörde de yer alabiliyor ancak her kopya farklı işlemci mimarisi için derlendiğinden dosya boyutları da farklı olabiliyor.

Microsoft’un WOW64 olarak adlandırdığı uyumluluk katmanı, 32 bit uygulamaların 64 bit Windows üzerinde çalışmasını sağlıyor. İsim, “Windows 32-bit on Windows 64-bit” ifadesinden geliyor. SysWOW64 klasöründeki “64” ifadesi ise klasördeki dosyaların 64 bit olduğu anlamına gelmiyor; isim, 64 bit Windows üzerindeki uyumluluk sistemine gönderme yapıyor.
Dosya sistemi yönlendiricisi, 32 bit bir uygulama C:\Windows\System32 yolundaki bir dosyaya erişmek istediğinde isteği uygun SysWOW64 konumuna aktarabiliyor. Böylece 32 bit bir süreç, 64 bit bir DLL yüklemeye çalışmıyor. Çünkü Windows, 32 bit bir sürecin 64 bit DLL’yi doğrudan çalıştırmasına izin vermiyor; aynı kısıtlama ters yönde de geçerli.
Yönlendirme, uygulamanın çoğu durumda fark etmediği bir işlem olarak arka planda gerçekleşiyor. Örneğin 32 bit bir Komut İstemi üzerinden C:\Windows\System32\kernel32.dll sorgulandığında sistem, isteği SysWOW64 içindeki dosyaya yönlendirebiliyor. 64 bit Komut İstemi ise aynı yolu kullandığında System32 klasöründeki 64 bit sürüme erişiyor.

WOW64 yalnızca sistem dosyalarının yollarını düzenlemekle kalmıyor, 32 bit uygulamalar için kayıt defterinde de ayrı bir görünüm sunuyor. Bazı kayıt defteri erişimleri HKEY_LOCAL_MACHINE\Software\Wow6432Node altındaki 32 bit görünüme yönlendiriliyor. Windows ayrıca 32 bit uygulamalara yönelik Program Files (x86) dizinini kullanarak 32 bit yazılımların dosyalarını 64 bit uygulamalardan ayırıyor.
Microsoft’un uyumluluk mekanizmasında bazı istisnalar da bulunuyor. System32\catroot, catroot2, driverstore, drivers\etc, logfiles ve spool klasörleri dosya sistemi yönlendirmesinden muaf tutuluyor. Bu dizinlerde paylaşılan sistem verileri bulunduğundan 32 bit ve 64 bit uygulamaların aynı konumlara erişmesi gerekebiliyor; ancak Microsoft, söz konusu istisnaların her biri için ayrıntılı gerekçe sunmuyor.
Microsoft, dosya yönlendirmesini aşarak gerçek System32 dizinine erişmek isteyen 32 bit uygulamalar için Sysnative adlı sanal bir yol da sağlıyor. Sysnative, Windows klasöründe fiziksel olarak bulunan sıradan bir dizin değil; yalnızca desteklenen 32 bit süreçlerin kullanabildiği özel bir takma ad niteliği taşıyor. Bu nedenle 64 bit Dosya Gezgini üzerinden C:\Windows\Sysnative yolunu açmak başarısız olabilirken 32 bit bir uygulama bu yolu kullanarak gerçek System32 dosyalarına erişebiliyor.
Geliştiriciler, WOW64 dosya yönlendirmesini Wow64DisableWow64FsRedirection işleviyle de devre dışı bırakabiliyor. Ancak Microsoft, bu yöntemin ilgili iş parçacığındaki dosya işlemlerini etkileyebileceği ve DLL yükleme hatalarına neden olabileceği konusunda uyarıyor. Bu nedenle uygulamaların mimariye uygun dosya yollarını kullanması, uyumluluk sorunlarını azaltmak açısından önem taşıyor.
Windows’un Arm tabanlı bilgisayarlardaki uyumluluk yapısı, x86 sistemlerinden farklı bir geçmişe sahip. Önceki Arm64 sürümlerinde 32 bit x86 uygulamalar SysWOW64 üzerinden çalışırken 32 bit Arm uygulamaları SysArm32 adlı ayrı bir klasöre yönlendiriliyordu. Microsoft’un güncel geliştirici belgeleri, Arm bilgisayarlarda 32 bit Arm uygulamalarına yönelik desteğin sona erdiğini ve SysArm32 içindeki sistem ikililerinin kaldırıldığını belirtiyor.
Buna karşılık x86 tabanlı 32 bit ve 64 bit uygulamalar, desteklenen Windows on Arm sistemlerinde Prism emülasyonu üzerinden çalışmayı sürdürüyor. Microsoft, Prism’e AVX ve AVX2 desteğini de ekleyerek uyumlu uygulamaların daha geniş bir işlem kümesinden yararlanmasını sağladı.
System32 adının korunması, Windows’un geçmiş yazılımlarla uyumluluğu sürdürmek için tercih ettiği yaklaşımın somut örneklerinden biri olarak öne çıkıyor. Microsoft, klasör adını değiştirerek eski uygulamaları bozmak yerine yönlendirme, sanal yollar ve istisnalar üzerinden mevcut yapıyı koruyor. Bu tercih, Windows ekosistemindeki eski yazılımların çalışmasını sürdürmesine yardımcı olurken sistem klasörlerinin isimlerini ilk kez gören kullanıcılar için kafa karıştırıcı bir durum yaratmaya devam ediyor.









