Яка різниця між i686 та x86_64?


Відповіді:


69

i686 - це 32-розрядна версія, а x86_64 - 64-розрядна версія ОС.

64-розрядна версія покращить об'єм пам'яті, особливо для навантажень на зразок великих баз даних, яким потрібно використовувати багато оперативної пам'яті в одному процесі. Не розглядайте можливість запуску (значного) сервера баз даних на 32-бітній машині.

Однак для більшості речей 32-бітна версія в порядку. 32-розрядний код використовує менше пам’яті, тому у вас буде більше речей. Обмеження на пам'ять, яку ОС може використовувати, не відрізняється, лише пам'ять на процес.

Тож насправді залежить, для чого ви хочете його використовувати. Якщо ви плануєте розробляти програмне забезпечення для великих серверів або працювати з великими серверами, використовуйте 64-розрядні. В іншому випадку використовуйте 32.


1
Якщо 4 Гб оперативної пам’яті або менше, не слід встановлювати 64-бітні ОС. Якщо у вас більше 4 Гб оперативної пам’яті, вам слід встановити 64-бітну ОС. Інакше ви не зможете отримати доступ до всієї ОЗУ.
d -_- b

3
@toor Я не погоджуюся, 1) 32-розрядні ОС можуть використовувати більше 4G оперативної пам’яті з PAE і т. д., які тепер є стандартними; може бути корисно мати 64-бітну ОС, навіть якщо у вас (трохи) менше 4G оперативної пам’яті.
MarkR

3
@toor Безумовно, якщо ви хочете запустити один процес з 2-3 Gb приватних анонімних сторінок, у 32-розрядної ОС стає важко. Виснаження адресного простору є серйозною проблемою для такої системи, а не вичерпанням (віртуальної) пам'яті. Однак перехід на 64-бітове ядро ​​та користувальницький простір, ймовірно, спричинить завдання витратити набагато більше оперативної пам’яті, можливо, перевищивши вашу ціль. Можливо, в деяких ситуаціях 64-бітове ядро, 32-бітове користувальницьке поле добре.
MarkR

1
якщо у вас 64-бітний процесор, запустіть 64-бітну ОС! так, здається розумним
Сем Уоткінс

2
Як не дивно, що ви всі не зазначаєте, що 64-бітні бінарні файли зазвичай складаються з підтримкою 64-бітної збірки! У деяких випадках використання 64-розрядних операцій може ВІДПОВІДНО збільшити швидкість програми. Помітним, який спадає на думку, є Crypto (OpenSSL тощо). Якщо ваш процесор підтримує 64-розрядні, його зазвичай найкраще використовувати 64-бітні програми!
jduncanator

121

Коротка відповідь:

i686 = 32-bit Intel x86 arch 
x86_64 = 64-bit Intel x86 arch

18
Ця відповідь мені найбільше корисна, особливо коли мені вже відомо 32-бітний та 64-бітний. Частина, яка мене скинула, була "i686". Як правило, я б очікував просто x86
Антоній

4
І чому x86_64 містить частину "86"?
mmdemirbas

3
Добре запитання про те, чому "86". Довелося придивитись до себе. serverfault.com/questions/188177/…
траг

8
Для узагальнення "386", "486", "586", "686" - прізвиська архітектури - повернення до мікросхем типу "80386", "80486" тощо.
Бред

3
@Brad правильно зрозумів :) 64-бітний (або в цьому випадку біт _64 в x86_64) просто стосується розширення набору інструкцій x86. Його все одно та сама збірка (-ish), однак вона додає нові інструкції по роботі з 64-бітовими цілими числами і т.д. Коли люди кажуть x86, більшість часу вони насправді мають на увазі 32-розрядні, оскільки x86 також застосовно до 64-розрядних машин.
jduncanator

31

ix86 - це вказівка ​​інструкцій процесора, встановлених генерацією процесора. Наприклад: Intel Pentium, Intel Core2Duo, AMD K6. ix86 існує вже багато років, якщо у вас є процесор, виготовлений після 2000 року, він, мабуть, має набір інструкцій i686. Відсутність інших показників говорить про те, що це була б 32-бітна версія.

x86_64 вказує на використання 64-бітових регістрів та адресного простору. Вибирайте це, лише якщо у вас 64-бітний процесор і ви хочете використовувати 64-бітну версію операційної системи.

Вибір за вами. Я вірю, що всі процесори AMD Turion мають 64-бітну підтримку. Вам просто потрібно вирішити, чи хочете ви 64-бітну або 32-бітну версію Arch Linux.


0

macemoneta пояснює

В основному різні позначення ядра визначають, для якого набору інструкцій компілятор було сказано для оптимізації. Процесор i686 може виконувати інструкції i586 та i386, тому, як ви зауважили, i686 може запускати ядро ​​i386. Однак він може не виконуватись настільки оптимально, як спеціально складений для i686.

Це позначення, на які типово будеш стикатися:

x86_64 Процесори

  • AMD's Athlon 64, Athlon 64-FX і Opteron
  • Процесори Intel EMT64 - Nocona Xeon, Pentium 4's, використовуючи ревізію E0 ядра Prescott (AKA Pentium 4, модель F)

Процесори i686 * Усі 32-бітні Pentiums Intel (крім Pentium 1 та Pentium MMX) * Усі 32-розрядні AMD Athlons

i586 Процесори

  • Усі 32-бітні AMD Ks
  • Пентій 1
  • Pentium MMX

i386 Процесори

  • Загальне позначення "найнижчого загального знаменника" для сумісних процесорів Intel 80386 (включає в себе все вищезазначене, але не скористається розширеними інструкціями щодо цих пізніших процесорів).
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.