İ386 indirme ve amd64 arasındaki fark?


164

Standart i386 indirme ile Ubuntu 11.04'ün amd64 indirmesi arasındaki fark nedir? Şu anda i386'yı bir amd makinesinde çalıştırıyorum, sistemim yerine amd64 indirme ile daha iyi çalışır mı? (makinem Windows 7 64bit kullanıyordu, ancak Ubuntu'yu yüklemeden önce buna bakmayı ihmal ettim).



Yanıtlar:


165

i386, 32 bit sürümü ve amd64 (veya x86_64), Intel ve AMD işlemcileri için 64 bit sürümünü belirtir.

Wikipedia'nın i386 girişi:

Aynı zamanda i386 veya sadece 386 olarak da bilinen Intel 80386, Intel tarafından 1985 yılında piyasaya sürülen 32-bit bir mikroişlemciydi ... Bu bağlamda, x86, IA-32 veya i386 mimarisi olarak adlandırılıyor.

Wikipedia'nın x86_64 girişi:

x86-64, x86 komut kümesinin bir uzantısıdır. AM86'da mümkün olandan çok daha büyük sanal ve fiziksel adres alanlarını destekler, böylece programcıların çok daha büyük veri kümeleriyle rahatça çalışmasını sağlar ... Mimariyi "x86-64" adı altında başlattıktan sonra AMD, AMD64 ... x86 olarak değiştirdi -64 hala sektörde birçok satıcı tarafından tarafsız bir terim olarak kullanılırken, diğerleri, özellikle de Sun Microsystems (şimdiki Oracle Corporation) ve Microsoft, x64 kullanmaktadır.

Bir Intel CPU'nuz olsa bile, bilgisayarınıza 64-bit yüklemek için AMD64 kullanmalısınız (aynı komut setlerini kullanır).

Kullanmanızı şiddetle tavsiye ederim. Çoğunlukla bir fark görmeyeceksiniz ama büyük iş yüklerinde (video düzenleme, oyun vb.) Bilgisayar daha hızlı çalışacaktır (bilgisayar yapmak yerine 2 + 2 + 2 = 6 hesaplama yeteneğine sahiptir. 2 + 2 = 4 + 2 = 6 örnekte). Windows dünyasında, bir 32 bit işletim sistemi bilgisayarınızda 3.5 GB'den fazla RAM kullanmanıza izin vermeyecektir (8 olsa bile!). Tüm RAM'i tam olarak kullanabilmek için 64 bit işletim sistemi kullanmanız gerekir. Ancak Linux için böyle bir sınır yoktur (teşekkürler, Uri).

Ne olursa olsun, dünya 32 bit'ten kaymıştır ve yalnızca 64 bit kullanamayan eski makineleri desteklemek için vardır.


Bu son bölüm şimdi (elbette Linux'ta) Sadece doğru değil, 32 bitlik PAE çekirdeği ile 3,5 GB RAM'den fazlasını kullanabilirsiniz.
Uri Herrera,

32bit'lik 3,5GB RAM sınırlaması 4GB-<grafik kartı belleği> olmaz mıydı?
Chriskin

3
Sadelik uğruna, grafik kartı hafızası gibi teknikler dışında kaldım. Amacım, "3.5-4 konseriniz varsa, 64 bit kullanın" demekti.

1
@Treefroginc Tam olarak ne Tweaks?
Uri Herrera,

1
64 bit, günün belirli bir saatinde belirli şartlar altında ve gezegenlerin kozmik ışınları yaymasıyla aynı hizada olması durumunda, Flash'ın neredeyse yok sayılabilir istisnası dışında, 32 bit kadar kullanışlı ve stabildir.


10

evet, Intel 64 bit işlemciye amd64 bit yükleyebilirsiniz. AMD, x86-64 bit komut seti işlemcisini icat etti, böylece ad yalnızca AMD'ye bir hediye oldu.


Bunu temizlediğin için teşekkürler. Bunun basit bir soru olduğunu biliyorum ama cevabı hiçbir yerde bulamadım.
Dave Wolover

8

Arasındaki fark amd64 ve i386 olmasıdır amd64'tür olan 64-bit ise i386 olan bir 32-bit . Bu, çekirdekte bulunan yazmaçların genişliğidir (bit olarak).

Temelde bir 32 bit CPU çekirdeğinin bir seferde kaldırabileceği en büyük sayı 4.29 milyar'ın biraz üzerinde iken, 64 bit çekirdekli bir miktar 18.44 milyar milyar'ın üzerinde bir miktar işlem yapabilir.

Modern PC'lerdeki çekirdekler, kurduğunuz işletim sisteminin hangi sürümüne bağlı olarak 64 bit veya 32 bit işlemci olarak işlev görebilir.

64 bitlik kod 32 bitlik koddan daha hızlı çalışma eğilimindedir ya da devam ederken daha büyük sayılarla başa çıkabildiğinden veya 64 bitlik çekirdeğin daha fazla kaydı olduğundan, harici belleğe bir şey koymaya gerek kalmadan daha fazla şeyi depolayabilmesi nedeniyle. İşlemcinin ekstra özelliklerinden yararlanmak için kod yazılmadıysa, 64 bit kodun daha hızlı çalışacağının garantisi yoktur.

32 bit sistemde derleme, 64 bit sistemden farklı bir kod üretecektir. Bunu iki sistemdeki montaj kodunu derleyerek ispatlayabilirsiniz. C dosyanızın myfile.c olduğunu varsayalımgcc -S myfile.c , her iki sistemde de deneyin ve myfile.s dosyasını karşılaştırın .

32 bitlik bir sistem için iyi yazılmış kodun 64 bitlik bir sistemde derlenmesi ve çalıştırılması gerekir, ancak tüm kodlar iyi yazılmış değildir. Birçok programcı, sistem hakkında doğru olmayan varsayımlarda bulunur: kayıt genişliği veya bayt sırası gibi.

Kaynak kodunuza erişmeden, sorunun ne olduğunu anlamak zor ancak segmenation faultbunun programa ait olmayan belleğe erişme girişiminde bulunduğunu gösterir. Bu, örneğin, mem_ptr'nin 32-bit bir sistemde iyi olan ancak 64-bit bir sistemde 64-bit bir işaretçi olması gereken 32-bit bir işaretçi olduğunu gösterebilir .


kontrol edeceğim ve buna geri döneceğim ... Thankx
bikram990

realloc(mem_ptr, 0)Fonksiyon azat bellek daha önce birlikte tahsis edilir malloc, callocvb bu işaretçi size ait değil Belleği boşaltmak için çalışıyoruz sonra herhangi bir şekilde bozulmuş ve bu bir segment hataya üretir edilmişse
Warren Tepesi

6

Evet, bunu kullanabilirsiniz. ISO. amd64 mimariyi ifade eder. İlk 64-bit CPU'yu ilk üreten AMD idi, bu yüzden isminin o zaman verildiğine ve ismin sıkışıp kaldığına inanıyorum. Biraz kafa karıştırıcı görünüyor, ancak amd64 sadece 64-bit demektir.


10
64 bit işlemci üreten ilk kişi değillerdi. Intel bir öncekine sahipti ancak geriye dönük olarak uyumlu değildi, bu yüzden yaygın olarak kabul edilmedi. Amd64 adı, AMD'nin mimarisini artık durdurulmuş olan Intel'in IA64'ten ayırt etmekti.
psusi
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.