Neden Windows'un 64 bit sürümü 32 bit sürümünden daha büyük?


Yanıtlar:


77

Boyut tutarsızlığının birkaç nedeni vardır:

  1. 64 bit Windows, 32 bit yazılımı çalıştırmasını sağlayan bir çeviri katmanı (Windows 64 bit üzerinde Windows 32 bit veya " WoW64 ") içerir.
  2. 64 bit Windows ayrıca çeşitli programların (Internet Explorer) ve kitaplıkların (WinSxS klasöründe) 32 bit sürümlerini de içerir. Yorumlarda belirtildiği gibi, bu boyut farkının en önemli nedenidir.
  3. 64 bit bellek adresleri 32 bit bellek adreslerinin iki katı, yani 64 bit işaretçiler de iki katıdır. İşaretçileri yoğun şekilde kullanan 64 bit programlar, 32 bit meslektaşlarından belirgin şekilde daha büyük olacaktır.

İlk ve son nedenler, 64 bit Windows ile birlikte gelen 32 bit yazılıma katkıda bulunmaz - ancak eksiksiz olmaları için dikkate alınmaları gerekir .


4
Bunun esas nedeni 1: sxs.iso içindeki klasör 32bit için 177m, 64bit için 315m'dir. windowsiçeride klasör install.wimiso içindeki 32bit için 7.9 g, 64bit için 11.9g olduğunu. ve bu klasörün içinde yine WinSxS32bit için 3.9g ve 64bit için 6.9g. Yan yana, buradaki en büyük veri yığını ve 64bit Windows sürümünde hem 32bit hem de 64bit uygulamalar için var. daha büyük ikili dosyalara ve uygulamaların bazı çift sürümlerine sahip olmalarının, izosların boyutu üzerinde neredeyse hiçbir etkisi yoktur.
akira

26
3. noktanın görüntü boyutunu nasıl etkileyeceğini anlamıyorum. Çok az imleç değeri kaynak kodunda kodlanmıştır. Yalnızca bunlar ikili yazılımda yer kaplar (yazılım çalıştırıldığında RAM görüntüsü yerine).
Konrad Rudolph

10
(1) için tüm Wow64 .DLL'ler Win7 Pro kurulumumda 1 MB'den daha az zaman alıyor. (3) için @KonradRudolph haklıdır. İç kod çözme işleminin 32'den 64-bit'e ilerlemesinin gerçek bir nedeni yoktur - birçoğu hala 32-bit genişliğinde olmasına rağmen birkaç kod değiştirilmiştir (x86 değişken uzunluklu bir komut dizilimidir). Bu tutarsızlığın çoğunluğu (2) den kaynaklanmaktadır.
Atılım

3
@akira sxsKlasörün (2) ile yapması gerekir, (1) değil. Yan yana derlemeler WoW64'ün bir parçası değildir, ancak 32-bit DLL'ler WoW64 altında yürütülür. Bununla birlikte, WinSxS klasörü, ilgili DLL gerektiren programlar için 32-bit ve 64-bit ikili dosyaları sağlamak için oradadır - esasen DLL'nin hem 32-bit hem de 64-bit versiyonuna sahiptir.
Atılım

3
@ CrisStringfellow: Hiç kimse şüphe etmedi. ancak izo görüntülerin genel boyutuna etkisi neredeyse sıfırdır. Boyut artışının ana öbekleri 64bit AND 32bit ürünü teslim etmekten kaynaklanıyor WinSxS.
akira

11

64bit sürümlerinde, Microsoft ek yazılım dağıtır. Örneğin, iki Internet Explorer sürümü vardır (64 ve 32bit). Başka bir örnek, Win32 uygulamaları için tüm çalışma zamanı sistemidir .
Ayrıca, ikili kod daha büyük olacaktır . Muhtemelen bunların toplamı büyük fark yaratıyor.


2

64 bit sürümler genellikle birkaç nedenden dolayı 32 bit sürümden daha büyüktür.

Dikkate alınacak ilk şey, derleyici türü ve yazılımın yürütüldüğü çalışma zamanı ortamıdır. Yazılım, yerel kod üreten ve bir çalışma zamanı ortamı olmadan çalışan bir derleyiciyle oluşturulmuşsa, oluşturulan kod büyüklüğünde, CISC işlemcilerinde daha büyük komutlarla ilgili küçük farklılıklar görmek mümkündür.

İkincisi, yazılım .NET gibi bir çalışma zamanı ortamında çalışmak üzere derlenirse, derleyici aynı (ara) kodu oluşturduğundan, herhangi bir boyut farkını görmezsiniz.

Son olarak, Windows'un 64 bit sürümü, 32 bit sürüm benzerlerinin bazılarıyla birlikte tam 64 bit sürümünü içerir. Bazı yazılımlar 32 bit olduğundan ve Windows 64 bit'te değişiklik yapılmadan çalıştırılması gerektiğinden, bu gereklidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.