Rehber System32 ve SysWOW64 klasörleri arasındaki farklar nelerdir?

Merhaba arkadaşlar. Bu konuda bu iki klasörden biraz bahsedeceğim size. İsimleri yanlış bilgilendirme yapmaya oldukça müsait, hem potansiyel yanlış bilgilendirmelerin önüne geçilmesi hem de yapılması durumunda kaynak olarak kullanılması için yazıyorum bu konuyu.



System32 nedir?

System32; gerek programlar tarafından kullanılan, gerek de Windows'un bir parçası olan .dll, .exe gibi uzantılara sahip dosyaları barındırır. Buradaki dosyaların büyük çoğunluğu Windows'a ait olsa da bazı üçüncü parti yazılımlar kendi DLL dosyalarını bu konuma yükleyebiliyor.



32 ve 64-bit kütüphaneleri birbirinden ayırma

Bir 64-bit Windows işletim sisteminde; 64-bit yazılımları bulunduran Program Files klasörü, 32-bit yazılımları bulunduran Program Files (x86) klasörü bulunur. 64-bit programlar 64-bit dosyalara, 32-bit programlar da 32-bit dosyalara ihtiyaç duyduğu için klasörlerde böyle bir ayrılmaya gidilmiştir.

Eğer 32-bit bir program, 64-bit bir DLL dosyasını kullanmaya çalışırsa çökecektir, hata verecektir. Sosyal'de el ile bilinçsiz DLL kopyalamasını bu yüzden önermiyoruz zaten. Bu farklılıktan dolayı Windows; tıpkı Program Files klasörlerini dosya mimarisine göre ayırmak gereksiniminde bulunduğu gibi, sistem klasörlerini de ayırmalıdır.




System32 ve SysWOW64

Burası yanlış bilgilendirmenin en çok olabileceği kısım, dikkatli okumakta fayda var.

32-bit bir işletim sisteminde;
  • 32-bit yazılımlar dosyalarını Program Files klasöründe depolar. Sistem dosyaları ise System32 konumundadır.
64-bit bir işletim sisteminde;
  • 64-bit yazılımlar dosyalarını Program Files klasöründe depolar. 64-bit sistem dosyaları ise System32 konumundadır.
  • 32-bit yazılımlar dosyalarını Program Files (x86) klasöründe depolar. 32-bit sistem dosyaları ise SysWOW64 konumundadır.
Hayır, yukarıdaki yazıda herhangi bir yanlış yapmadım. SysWOW64 klasörü, adındaki "64" ifadesine rağmen 32-bit dosyaları barındırır. Aynı farklılık System32 için de geçerli.



Nedir bu WOW64?

WoW64, "Windows 32-bit on Windows 64-bit"in kısaltmasıdır. 64-bit bir Windows işletim sisteminde, 32-bit yazılımların çalışmasını sağlar.

Diyelim ki 64-bit bir Windows işletim sistemine 32-bit bir yazılım kuruyorsunuz ve program, Program Files klasörüne yazılmaya çalışıyor. WoW64 bu durumda, kurulum için Program Files yerine Program Files (x86) klasörünü işaret edecektir. Ve eğer System32 konumuna erişmek isterse, WoW64 yine SysWOW64'e yönlendirecektir. Bu yönlendirme işlevine
File System Redirector (Dosya Sistemi Yeniden Yönlendirici) deniyor. Yönlendirme örnekleri aşağıdaki gibidir:

Orijinal dizin32-bit x86 işlemler için yeniden yönlendirilmiş dizin
%windir%\System32%windir%\SysWOW64
%windir%\lastgood\system32%windir%\lastgood\SysWOW64
%windir%\regedit.exe%windir%\SysWOW64\regedit.exe



Peki, neden?

Asıl soru, neden? Neden System32 klasöründe 64-bit, SysWOW64 klasöründe 32-bit dosyalar bulunuyor?

Çünkü çoğu 32-bit yazılım, C:\Windows\System32 yolunu kullanacak şekilde yapılmış. Geliştiriciler, yazılımları 64-bit Windows için decompile ederken (yeniden derlerken) de bu yolu kullanmaya devam etmiş.

Dolayısıyla Microsoft; dizini yeniden isimlendirip geliştiricileri o dizini kullanmaya zorlamak yerine System32 klasörünü standart sistem kütüphanesi olarak bırakmış. WoW64 katmanı altında çalışan yazılımlar için yeni bir kütüphane yolu oluşturmuş ve buna SysWOW64 ismini vermiş.
 

Yeni konular

Geri
Yukarı