Apa perbedaan antara i686 dan x86_64?

112

Saya memiliki AMD Turion dan tidak tahu versi mana yang harus dipilih ketika menginstal Arch Linux.

Claudiu T.
sumber
1
kemungkinan rangkap dari Perbedaan antara x86_64 dan i386
Sathyajith Bhat

Jawaban:

70

i686 adalah versi 32-bit, dan x86_64 adalah versi OS 64-bit.

Versi 64-bit akan berskala dengan memori yang lebih baik, terutama untuk beban kerja seperti basis data besar yang perlu menggunakan banyak ram dalam proses yang sama. Jangan mempertimbangkan menjalankan server database (signifikan) pada mesin 32-bit.

Namun, untuk sebagian besar hal lain, versi 32-bitnya ok. Kode 32-bit menggunakan lebih sedikit memori, sehingga Anda akan memiliki lebih banyak untuk hal-hal lain. Batas memori yang dapat digunakan OS tidak berbeda, hanya memori per proses.

Jadi itu sangat tergantung untuk apa Anda ingin menggunakannya. Jika Anda berencana mengembangkan perangkat lunak untuk server besar, atau menjalankan server besar, gunakan 64-bit. Kalau tidak gunakan 32.

MarkR
sumber
1
Jika RAM 4GB atau kurang, Anda seharusnya tidak menginstal OS 64-bit. Jika Anda memiliki lebih dari 4GB RAM, Anda harus menginstal OS 64-bit. Kalau tidak, Anda tidak akan dapat mengakses semua RAM.
d -_- b
3
@toor Saya tidak setuju, 1) OS 32-bit dapat menggunakan lebih dari 4G ram dengan PAE dll, yang sekarang standar dan 2) Tidak semua ruang alamat proses dapat dipetakan ke (berbeda) RAM fisik, sehingga dapat bermanfaat untuk memiliki OS 64-bit bahkan jika Anda memiliki (sedikit) ram kurang dari 4G.
MarkR
3
@toor Tentu saja jika Anda ingin menjalankan satu proses dengan 2-3 Gb halaman anonim pribadi, itu menjadi sulit pada OS 32-bit. Penipisan address-space serius masalah pada sistem seperti itu, daripada kehabisan memori (virtual). Namun, beralih ke kernel 64-bit dan userspace cenderung menyebabkan tugas mengkonsumsi ram lebih banyak, mungkin melebihi target Anda. Mungkin dalam beberapa situasi kernel 64-bit, userspace 32-bit bagus.
MarkR
1
jika Anda memiliki prosesor 64 bit, jalankan OS 64-bit! ya, sepertinya masuk akal
Sam Watkins
2
Aneh bahwa Anda semua gagal menyebutkan bahwa binari 64-bit biasanya dikompilasi dengan dukungan untuk perakitan 64-bit! Dalam beberapa kasus, kemampuan untuk menggunakan operasi 64-bit dapat secara signifikan meningkatkan kecepatan aplikasi. Salah satu yang terkenal yang terlintas dalam pikiran adalah Crypto (OpenSSL dll.). Jika prosesor Anda mendukung 64-bit, biasanya yang terbaik adalah menggunakan aplikasi 64-bit!
jduncanator
122

Jawaban singkat:

i686 = 32-bit Intel x86 arch 
x86_64 = 64-bit Intel x86 arch
Brad
sumber
18
Jawaban ini sangat berguna bagi saya, terutama ketika saya sudah menyadari 32bit vs 64bit. Bagian yang mengusir saya adalah "i686". Biasanya, saya harapkan hanya x86
Antony
4
Dan mengapa x86_64 mengandung bagian "86"?
mmdemirbas
3
Pertanyaan bagus tentang mengapa "86". Harus mencari tahu sendiri. serverfault.com/questions/188177/…
thrag
8
Untuk menggeneralisasi "386", "486", "586", "686" - julukan untuk arsitektur - kembali ke chip seperti "80386", "80486", dll.
Brad
3
@Brad melakukannya dengan benar :) 64-bit (atau dalam hal ini _64 bit di x86_64) hanya merujuk pada ekstensi dari set instruksi x86. Rakitannya masih sama (-ish) tetapi menambahkan instruksi baru untuk bekerja pada bilangan bulat 64-bit dll. Oleh karena itu mengapa x86 masih relevan. Ketika orang mengatakan x86, sebagian besar waktu mereka benar-benar berarti 32-bit karena x86 juga berlaku untuk mesin 64-bit.
jduncanator
31

ix86 adalah indikasi instruksi prosesor yang ditetapkan oleh generasi prosesor. Misalnya: Intel Pentium, Intel Core2Duo, AMD K6. ix86 telah ada selama bertahun-tahun, jika Anda memiliki prosesor yang dibuat setelah tahun 2000, mungkin setidaknya memiliki set instruksi i686. Tidak adanya indikator lain mengisyaratkan bahwa ini akan menjadi versi 32 bit.

x86_64 menunjukkan penggunaan register 64 bit dan ruang alamat. Hanya pilih ini jika Anda memiliki prosesor 64 bit dan Anda ingin menggunakan versi 64 bit dari sistem operasi.

Pilihan ada padamu. Saya percaya semua prosesor AMD Turion memiliki dukungan 64 bit. Anda hanya perlu memutuskan apakah Anda ingin versi 64 bit atau versi 32 bit Arch Linux.

Zusukar
sumber
0

macemoneta menjelaskan

Pada dasarnya, penunjukan kernel yang berbeda mengidentifikasi instruksi mana yang ditetapkan oleh kompiler untuk dioptimalkan. CPU i686 dapat menjalankan instruksi i586 dan i386, jadi, seperti yang Anda amati, sebuah i686 dapat menjalankan kernel i386. Namun, itu tidak dapat dijalankan secara optimal seperti yang dikompilasi secara khusus untuk i686.

Ini adalah sebutan yang biasanya Anda temui:

x86_64 Prosesor

  • AMD Athlon 64, Athlon 64-FX, dan Opteron
  • Prosesor Intel EMT64 - Nocona Xeon, Pentium 4 menggunakan revisi E0 dari inti Prescott (AKA Pentium 4, model F)

Prosesor i686 * Semua Intel 32-bit Pentiums (tidak termasuk Pentium 1 dan Pentium MMX) * Semua Athlons AMD 32-bit

Prosesor i586

  • Semua AMD Ks 32-bit
  • Pentium 1
  • Pentium MMX

Prosesor i386

  • Penunjukan generik "common common denominator" untuk CPU yang kompatibel dengan Intel 80386 (termasuk semua hal di atas, tetapi tidak memanfaatkan instruksi tambahan pada CPU yang lebih baru).
Jonathan
sumber