Десять имён для одной архитектуры
На пятничном семинаре учебного проекта лаборатории МФТИ-Интел один из студентов задал мне примерно такой вопрос: а почему 64-битный вариант архитектуры процессоров Intel называется x64, а 32-битный — x86? Я начал объяснять, что не всё так просто. Захотелось нарисовать более полную картину. Ведь на самом деле это не x64, и даже не x86.
386-ые, Пентиумы и Коры
На самом деле названий для этого феномена, около сорока лет присутствующего на сцене процессорных технологий, было придумано несколько. Даже больше, чем хотелось бы. Они появились из разных источников и используются в разных контекстах, разными компаниями и разными сообществами. Конечно же, это вносит некоторую неразбериху.
Я постарался здесь собрать все известные мне названия. Не хочу пытаться доказать, что одна группа имён лучше другой, — меньше использовать их не станут.
8086 и семейство
В 1978 году был выпущен 16-битный процессор Intel, который имел «имя» 8086. За ним были 8088, 80186, 80286, 80386 (плюс вариации), 80486 (плюс вариации). Легко заметить, что (почти) все эти числовые имена оканчиваются на две цифры 86, что дало название всей серии x86. Оно укрепилось, его продолжили использовать и после того, как процессорам перестали давать цифровые имена, а появились Intel Pentium, Celeron, Xeon, Core, Atom и т.д. Совместимые продукты других вендоров, таких как IBM, AMD, Cyrix, VIA и т.д., также описываются как x86.
По моим наблюдениям, x86 — самый популярный вариант для имени этой архитектуры в Интернете, статьях и прочей литературе, особенно, когда не стоит задачи точно специфицировать разрядность архитектуры или речь явным образом идёт о 32-битном варианте.
Используются также вариации этого названия для 32-битных вариантов, позволяющие более точно указать минимальный набор поддерживаемых инструкций: i386, i486, i586, i686, — например, для различения вариантов сборок бинарных пакетов дистрибутивов Linux.
Пришествие 64 бит
Своими стараниями Intel расширила машинное слово в описанной ранее серии процессоров с 16 до 32 бит. Достигнуть этой архитектуре 64 бит помогла компания AMD, в 2003 году представившая процессор, поддерживающий новые инструкции и регистры и реализующий AMD64.
Для того, чтобы явно указать повышенную битность процессора/кода/пакета, имя x86 стало получать новый суффикс «64». Вот только через какой знак его приписывать не договорились, и иногда видишь x86_64, а порой x86-64. Например, вывод команды uname в Linux использует подчерк. Наконец, у пакетов можно увидеть и суффикс amd64 строчными буквами.
Intel же обозначала это расширение архитектуры сперва IA-32e, затем EM64T. В настоящее время можно встретить оба варианта в различных именах пакетов, документации и прочем. Тем не менее, есть и третье введённое Intel название…
Как это называет Intel
В официальной документации 32-битная архитектура имеет имя IA-32; её 64-битный вариант получил довольно странное с моей точки зрения имя Intel 64. Почему странное — оно создаёт потенциал для путаницы, как мы увидим ближе к концу статьи.
Компании-поставщики софта
- Дистибутивы Linux: x86 и x86_64, иногда x86 и amd64.
- Apple: x86 и x86_64.
- Microsoft и Oracle: x86 и x64.
Всё вместе
- Для 32-битного варианта: IA-32, x86, i386, i486, i586, i686.
- Для 64-битного варианта: Intel 64, AMD64, amd64, EM64T, IA-32e, x86_64, x86-64, x64.
Ложные имена
Как известно, за свою сорокалетнюю историю Intel выпускала (и выпускает сейчас) не только процессоры IA-32. Были и до сих пор присутствуют продукты других архитектур. Они тоже имеют свои имена, иногда несколько созвучные. При этом происходит путаница, от которой хотелось бы предостеречь.
Intel IA-64. Является полным синонимом термина «Intel Itanium». Используется для обозначения 64-битной архитектуры, несовместимой ни с IA-32, ни с 64-битным её вариантом ни по набору команд, ни по принципам работы. Да, существуют аппаратные и программные прослойки для запуска IA-32 приложений на Итаниуме, но это — тема для отдельного и интересного рассказа. Кстати, и для Itanium есть ещё одно обозначение — IPF, используемое изредка как суффикс.
К сожалению, линейки таких семейств процессоров Intel, как i432, i860, i960 или не дожили до наших дней, или же имеют крайне узкую нишу применения. А то глядишь — пришлось бы для каждого из них запоминать ещё по десятку имён.
Расширение файла X86_64
Файл X86_64 — это 64-разрядный исполняемый программный файл, используемый операционной системой Linux. Он содержит приложение в двоичном формате, которое запускается как исполняемый файл, аналогично файлу .EXE в Microsoft Windows.
Файлы X86_64 обычно упаковываются и распространяются вместе с приложениями. Скорее всего, вы столкнетесь с этим файлом при загрузке игры для Linux. Файл является исполняемым и может быть открыт двойным щелчком по нему. Если вы получаете сообщение об ошибке при двойном щелчке по файлу, возможно, вам нужно пометить его как «исполняемый».
Затем введите в командной строке следующее для выполнения файла:
./ [filename] .x86_64 (вставьте имя файла в [filename] )
ПРИМЕЧАНИЕ. Если Linux по-прежнему не может запустить файл X86_64, он, скорее всего, динамически связан с библиотеками, поэтому вам нужно будет установить недостающие библиотеки до Файл X86_64 можно запускать.
x86_64
Зачем писать <дистрибутив> x86_64, не проще ли просто x64?
Корпорации Microsoft и Oracle используют для обозначения этого набора инструкций термин «x64»
Не давай маркетологам задурить себя!

x86 — архитектура, 64 — разрядность.

Потому что SPARC64, AArch64 и другие *64.

Конечно проще, но это неправильно. Почему Microsoft пишет x64 хз, наверное для рядового пользователя x86_64 слишком сложно.

Видимо, потому что оффтопные оси только под x86 (ну, кроме редких версий под itanium, которые закопать), и хомячкам так проще.

Зачем писать <дистрибутив> x86_64, не проще ли просто x64?
Ты разве не в курсе? цифры не могут уменьшаться!

x86_64 — общепринятое обозначение наряду с amd64. А x64 — НЁХ какая-то.
Во-первых, так уже назывался Intel Itanium.
Во-вторых, маркетологи не разрешели: как же так, новая платформа x64 меньше, чем старая x86

Это та же архитектура х86 (IA-32) но с 64-разрядными дополнениями, поэтому х86-64. То есть архитектура то по сути та же. А х64 — так часто Itanium называли (IA-64), поэтому была бы путаница.
Во-во-во, x64 или amd64 красивее, а то x86_64 фигня какая-то.

Смотрю ты тоже упорот.

Ну, x64 есть на многих платформах.
Видел где-то маркировки «ARM» и «ARMx64»

x86 это общее название совместимых с i8086 процессоров.
x86_64 это общепринятое название архитектуры amd64, для того, что-бы люди не думали, что это только для AMD. Название «amd64» является историческим, и сегодня все intel’овские процессоры тоже являются amd64.
x64 — это хрень какая-то. Наверное торговая марка, типа AllWays. Не имеет смысла.
Какой дистрибутив лучше выбрать, i386 или amd64?

В кратце, 32-bit и 64-bit компьютеры отличаются в архитектуре. Главная разница между архитектурами заключается в поддержке размерности данных. Машины с архитектурой 32-bit могут понимать данные размерностью в 32-bit. Все что больше этого значения такая машина прочитать не сможет. Аналогично, машина с 64-bit может прочитать и обработать данные длиною в 64-bit. Не смотря на то, что 64 это в два раза больше чем 32, 64-bit данные могу содержать в себе намного больше, чем просто двойную информацию 32-bit. Это также объясняет почему 64-битные машины могут работать быстрее и эффективнее чем 32-битные.

Другим отличием между 32-bit и 64-bit машинами является тот размер оперативной памяти, которые они могут поддерживать. 32-bit машина поддерживает максимальный размер памяти в 4GB. В то время как 64-bit – теоретически не ограничена в размене ОЗУ (если посмотреть на цифры, то это около 17.2 миллиардов гигабайт). Однако большинство операционных систем штучно ограничивают до 16GB (или 32GB) ОЗУ, что на наше время ассоциируется с очень мощными машинами.
Что такое Amd64?
В зависимости от использования 32-bit и 64-bit люди дали им имена. Архитектуру 32-bit часто ассоциируют с именами i386 или x86, в то время как 64-bit архитектура широко известна как AMD64/EM64T или /x86-64/x64, в зависимости от продукта и производителя.
Почему AMD64? В соответствии с информации с Википедии фирма AMD была первой, кто разработал спецификацию 64-битного процессора. Они первоначально назвали эту архитектуру x86-64, но позднее переименовали в AMD64, когда вышел релиз их первого 64-битного процессора: серия AMD-K8. С того времени AMD ввела термин 64-битного процессора.

Компания Intel (конкурент AMD) конечно же не могла использовать название AMD64 для их 64-битного процессора, поэтому они вышли под именем EM64T, а затем были переименованы в Intel 64. В некоторых материнских платах компании Intel при загрузке BIOS вы до сих пор сможете увидеть слово «EM64T», которое может пробегать на вашем мониторе.
В наше время технология AMD64 уже ассоциируется с 64-битной архитектурой и ничем не связана с процессорами компании AMD.
Работает ли AMD64 Ubuntu только с процессорами AMD?
Если вернутся к вопросу о выборе ISO образа Ubuntu, то в случае если у вас 32-bit процессор, то вам необходимо загружать и устанавливать Ubuntu версии i386. Если же ваш процессор поддерживает архитектуру 64-bit, то в таком случае можете смело загружать и устанавливать версию amd64, в независимости от того какой фирмы у вас процессор.
С увереностю могу сообщить что если у вас компьютер поддерживает архитектуру 64-bit, то вы также без проблем можете устанавливать и работать в версии Ubuntu i386 (32-bit). Но в таком случае вы не сможете использовать весь ресурс своего компьютера. Если у вас машина 32-bit, то AMD64 Ubuntu у вас однозначно работать не будет.
Возможно ли запускать приложения 32-bit на Ubuntu версии amd64?
В большинстве случаев вы без проблем сможете запускать 32-bit приложения на Ubuntu 64-bit, но при этом не сможете полностью использовать вашу систему. Однако наоборот не получится. Вы не сможете запустить 64-bit приложение на 32-bit системе (к примеру разместить маленький контейнер в большом получиться, но засунуть большой в маленький – никак). Если устанавливать приложения через менеджер пакетов Synaptic, то вы увидите что некоторый софт идет в версии 32-bit, а некоторый в 64-bit (это отображается только тогда, когда вы используете Ubuntu 64-bit). Вы можете выбрать ту версию, которая вам больше подходит. В дополнение можно сказать что не все 32-bit приложения корректно работают в 64-bit системе. Это касается как Windows, так и Linux приложений, которые требуют доступ к аппаратным настройкам.