Linux x86 64 что это за устройство
Перейти к содержимому

Linux x86 64 что это за устройство

  • автор:

Что такое x86-64 и откуда это взялось?

Программные продукты часто снабжаются интересными аббревиатурами, значение которых знают далеко не все. Например, напротив той же 1С: Бухгалтерии в прайсе можно обнаружить приписку x86-64. И вроде как не сложно догадаться, что речь идёт об использовании программного обеспечения, адаптированного для многоядерных процессоров. Но почему оно так странно записано? А как тогда должны быть обозначены программы для одноядерных систем (если такие, конечно же, сейчас вообще используются).

Логично было бы обозначать одноядерные процессоры и системы значком х32, как это делалось когда-то на уже устаревшем железе, ну а многоядерные системы отмечать как x64, поскольку сначала всё начиналось с двух ядер в системе. Но нет, на программном продукте мы видим именно x86-64! Такое обозначение встречается и, например, на дистрибутивах операционных систем. Если скачивать Линукс, то обязательно увидите множество самых разных версий, в том числе и обозначенную выше.

Всё начинается с разрядности. Для того, чтобы понимать о чём вообще идёт речь, нужно в первую очередь ориентироваться на то, чем является разрядность операционной системы.

В информатике разрядность – это количество битов, которые могут быть одновременно обработаны данным устройством (в нашем случае ОС). На сегодняшний день существуют только две разрядности операционной системы. Логично предположить, что это х32 и х64. Тогда откуда берется странная запись х86…Оно и на 32 не делится, и на 64 тоже.

x86 — это не разрядность, а архитектура процессора. Под архитектурой понимается способность аппаратного выполнения набора команд. Ведь мы помним, что любой процессор по сути дела – это набор цепей из полупроводниковых транзисторов. Цепь – это некоторая логическая последовательность, которая на выходе даст определенный результат.

Само собой, что аппаратная специфика конструкции процессора, то есть его архитектура, влияют на методику программирования и выбор подхода. x86 может работать как с 32-битной версией, так и с 64-битной версией. Но чаще всего указание на х86 ассоциируется именно с 32-разрядной системой. Правда корректно было бы указывать ещё и разрядность.

Сама маркировка x86 пошла от названия первого процессора от компании Intel i8086 и более новых моделей.

Правильный вариант обозначения через архитектуру выглядел бы примерно так:

  • для 32 разрядной операционной системы x86-32bit
  • для 64 битной x86-64bit

Ничего не напоминает последняя запись? Это та самая запись, которую мы обозначили в заголовке заметки и со смыслом которой пытались разобраться. x86-64 – это 64-разрядная версия набора инструкций x86. Это значит, что это версия для многоядерных процессоров, которая работает с процессорами типа х86 и при этом имеет 64-разрядную версию. Говоря ещё более простым языком – это версия для “двухъядерного процессора” и если у вас установлена операционка Windows x64, то выбирать следует именно такую версию.

Десять имён для одной архитектуры


На пятничном семинаре учебного проекта лаборатории МФТИ-Интел один из студентов задал мне примерно такой вопрос: а почему 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 или не дожили до наших дней, или же имеют крайне узкую нишу применения. А то глядишь — пришлось бы для каждого из них запоминать ещё по десятку имён.

What is the difference between x86_64 amd64 and 64 bit?

I use a x86_64 bit Ubuntu, but whenever I try to do a live boot of any other 64 bit images like the GNOME 3.16 which was released yesterday, it does not work?

Also some times when I try a virtual machine of a 64 bit image, it does not work either.

What is the reason for the same? What is the difference between x86_64 amd64 and 64 bit?

My laptop model is an Hp Pavillion dv4 1506tx. The processor is 2.20 GHz Intel Core 2 Duo Processor T6600

Kulfy's user avatar

3 Answers 3

This may not solve exact problem, but I’ll clarify the difference between x86_64, amd64 and 64-bit.

Every micro-processor implements an instruction set (also called instruction set architecture or ISA in short).

64-bit ISA or 64-bit processor that the length of address bus is 64 bits. Intel/AMD have variable length instructions — they vary from 1byte to 15 bytes. So, instruction length does not determine what type(32/64-bit) processor it is.

x86_64 is name of specific 64-bit ISA. This instruction set was released in 1999 by AMD (Advanced Micro Devices). AMD later rebranded it to amd64.

Other 64-bit ISA different from x86_64 is IA-64 (released by Intel in 1999).

Файл расширение X86_64

Файл X86_64-это 64-битный исполняемый файл программы, используемый операционной системой Linux. Он содержит приложение в двоичном формате, которое запускается как исполняемый файл, аналогично файлу .exe в Microsoft Windows.

Файлы x86_64 обычно упаковываются и распространяются с помощью приложений. Скорее всего, вы столкнетесь с файлом при загрузке игры для Linux. Файл исполняется и может быть открыт, дважды щелкнув его. Если вы получаете ошибку при дважды щелкнуть файл, вам может потребоваться пометить его как «исполняемый».

Затем введите следующее из командной строки, чтобы выполнить файл:

./TFILENAME Затем.x86_64 (вставьте имя файла в [filename] )

Примечание. Если Linux по -прежнему не сможет запустить файл X86_64, он, скорее всего, динамически связан с библиотеками, поэтому вам необходимо будет установить пропущенные библиотеки, прежде чем файл X86_64 может быть запущен.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *