32 bit işletim sistemi ve 64 bit işletim sistemi arasındaki fark nedir? 32 bit işletim sistemi 64 bit işlemcide çalışabilir mi?
32 bit işletim sistemi ve 64 bit işletim sistemi arasındaki fark nedir? 32 bit işletim sistemi 64 bit işlemcide çalışabilir mi?
Yanıtlar:
Sorunuz mimariye özgüdür. x64 aslında x86 mimarisinin bir uzantısıdır. 64 bit adres alanını destekler. Bazı yeni talimatlar ve yeni kayıtlar sağlar.
Bir x64 makinede 32-bit x86 Windows çalıştırabilirsiniz. Bunu Itanium 64-bit sistemlerde yapamayacağınızı unutmayın.
64 bit işlemci hem 32 hem de 64 işletim sistemini çalıştırabilir (en az bir x64 olabilir). 32 bit işlemci, yalnızca 32 yerel olarak çalışabilir.
Fark çoğunlukla İşaretçi / Referansın büyüklüğü ile ilgilidir. 64 bit makinelerde, 64 bit adres aralığında bir adrese başvurabilirsiniz (böylece 2 ^ 64 bayt bellek verir). 32 bit'te yalnızca 2 ^ 32 bayta (= 4 GB) adres verebilirsiniz. Şimdi mevcut bilgisayarlara bakarsanız, neden dünyanın 64 bit'e geçtiği açıktır: 32 bit artık tüm RAM'lere kolayca erişemiyor.
X64'te (AMD / Intel) 64 bitlik ek avantajlara sahipsiniz. CPU'nun daha fazla kaydı var ve bu nedenle daha verimli kodlar veriyor.
Diğer mimarilerde 64 ve 32 bit arasındaki farklar daha az belirgindir. Örneğin Nintendo 64 (hatırladın mı?) 64 bit bir makineydi ancak kodunun çoğu 32 bit idi. Yani bu durumda 64 bit bir pazarlama hilesi olarak daha fazlasını yaptı.
Halen kabul edilen cevap genel olarak doğrudur, ancak tam olarak öyle değildir. Gerçekten "32-bit CPU" veya "" 64-bit CPU "olarak adlandırılan tek bir şey yoktur - bu, CPU mimarisinin sadece küçük bir kısmına atıfta bulunan bir açıklamadır. CPU ve bellek arasındaki adres seçim hatlarının, yani bellek işlemleri için uygun olan adres alanı .
CPU'nun bir işlemci ve bellek arasındaki telleri oturtup ördüğü (ördüğü) zaman kullandığı eski zamanlarda, ya 32'yi kullanmak zorunda kalacaktınız (teorik olarak, çünkü o zamanlar yoktu) CPU ile bellek denetleyicisi arasında 64 kabloya erişmek istediğiniz bellek adresini belirtmek için kullanılacak kablolar. Örneğin, 2 bitlik bir bellek mimarisine sahip olduğumuzu varsayalım: 00 gönderildiğinde 0, 01 adresini seçer, 1 adresini seçer, 10 adres 2'yi seçer ve 11 adres 3'ü seçer. Bu 2 bit bize 2 ^ 2 bayt verir RAM (4 bayt).
32 bit CPU kullanıyorsanız ve daha fazla belleği destekleyebilmeniz için CPU ve bellek denetleyicisi arasına 32 kablo eklerseniz, artık 32 bit çalıştırabilen bir "64 bit CPU" vardır. kod veya 64 bit kod. Bu ne anlama geliyor ve bu nasıl oluyor? Şimdi 2-bit işlemcimizi bu cevabın önceki bölümünden alıp, başka bir kablo ekleyerek 3-bit işlemciye çevirip bizi 4 bayttan 2 ^ 3 veya 8 bayta RAM alalım.
Mevcut "2 bayt" kodu çalışacak ve son 2 kablonun değerlerini yukarıda belirtildiği gibi ayarlayarak (00-11) çalışacaktır. Ekstra bağlantıyı varsayılan olarak sıfır olarak bağlayacağız, bu yüzden aslında 2 baytlık kod çalıştığında, 00'ı seçtiğinde, aslında 000'ı ve 11'i seçtiğinde aslında 011'i seçiyor. Kolay.
Şimdi bir programcı "yerel" 3 baytlık bir kod yazmak istiyor ve ek adres alanından yararlanmak için yazılımını yazıyor. CPU'ya ne yaptığını bildiğini ve yeni, ekstra kabloların manuel kontrolünü alacağını söyler. Onun yazılımı fazladan kabloları bilir ve doğru bir şekilde 000-111'i gönderir ve bu yeni CPU mimarisi tarafından desteklenen hafıza aralığına tam erişim sağlar.
Ama böyle olması gerekmiyor. Aslında, bu normalde var olmayan şeyler olur nasıl. 64 bit CPU'lar ilk kez piyasaya sürüldüğünde (ve daha fazlası vardı), hepsi tamamen yeni mimariler / tasarımlarla geçti. Sadece 32 ek kabloyla bağlantıya geçmediler ve "işte burda, bu 32-bit veya 64-bit modunda kullanabileceğiniz 64-bit bir CPU'dur" demediler, aksine "Yeni işlemcimiz ve" dediler. sadece bu tamamen yeni makine dilinde programlama yapar, tamamen yeni bir şekilde davranır, eski x86 / i386 32-bit işlemcilerden çok daha farklı bir bazilyon problemi çözer ve 64-bit yerli bir mimariye sahiptir. ."
Ne kadar kitlesel bir biçimde battığından dolayı meşhur "Itanik" olarak bilinen Intel Itanium'un öyküsü buydu. Yeni 64-bit döneminde habercisi olması gerekiyordu ve bakması gereken bir şeydi. Değişken uzunluklu talimatlar, büyük önbellek, 64 bit adres alanı, tonlarca yazmaç, süper heyecan verici, süper serin ve herkesi 20 yıllık eski kodu yeniden derlemeye ya da yeniden yazmaya ikna etmek için çok zor. Bu, AMD ve Intel aslında rekabet ettikleri zamandı ve AMD, "tüm bunları unutalım" tüm dünyadaki sorunları çözelim "işte, i386'ya 32 kablo ekleyip 32-bit uyumlu hale getirmeye başladı. bit CPU "ve x86_64 CPU mimarisi doğdu.
Aslında, büyük işletim sistemleri için çekirdek adlarına ve kaynaklarına bakarsanız (Linux, Windows, BSD'ler, vb.), Bunları AMD64 CPU'lara ve AMD64 mimarisine referanslarla karıştırılmış bulacaksınız. AMD, 32-bit uygulamalarla uyumluluğu korurken, 32-bit bir işletim sisteminin 64-bit donanımda veya hatta 32-bit uygulamalarda çalışabileceği şekilde, herkesin 64-bit dünyaya geçiş yapmasını sağlayan bir strateji geliştirdi. 64 bit donanımda 64 bit işletim sistemi üzerinde çalışabilir. Intel, "Intel EM64T" mimarisiyle (temel olarak AMD64 ile aynıydı) ve daha sonraları x86_64 ile daha hızlı bir şekilde takip etti ve Itanic ve MIPS64 ve ALPHA64 gibi diğerleri artık masaüstü / sunucu pazarında görünmüyordu.
tl; dr amd64 aka x86_64 CPU'lar hem 32 hem de 64 bit çekirdek ve kodla uyumlu olacak şekilde tasarlanmıştır, ancak 64 bit işlemcilerin çoğu aynı şekilde geriye doğru uyumlu değildir . 32 bit CPU en fazla 4GiB belleğe erişebilirken, 64 bit CPU çarpıcı bir 16 EiB'ye (16 x 1024 ^ 6 bayt veya 4 milyar katı kadar 4GiB) erişebilir.
Hem 32 hem de 64 bit işletim sistemi 64 bit işlemcide çalışabilir, ancak 64 bit işletim sistemi 64 bit işlemcinin tam gücünü kullanabilir (daha büyük kayıtlar, daha fazla talimat) - kısacası aynı anda daha fazla iş yapabilir. 32 bit işlemci yalnızca 32 bit Windows işletim sistemini destekler.
32 and 64 bit OS can run on a 64 bit processor
genellikle doğru değil