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

Linux x86 64 что это

  • автор:

x86-64

x86-64 (x64/AMD64/Intel64/EM64T) — аппаратная платформа. Автором технологии является компания AMD. Платформа создана для выполнения 64-разрядных приложений.

Представляет собой расширение x86-архитектуры, обладает практически полной обратной совместимостью.

Компании Microsoft и Oracle применяют для индикации данного набора инструкций термин «x64», хотя каталог с файлами в дистрибутивах Linux имеет название «amd64» (в случае с архитектурой x86, именуется как «i386»).

На сегодняшний день, платформу x86-64 поддерживают следующие компании:

  • AMD: процессоры Z-серии, C-серии, G-серии, E-серии, E1, E2, A4, A6, A8, A10, FX, Athlon 64, Athlon 64 FX, Athlon 64 X2, Athlon II, Phenom, Phenom II, Turion 64, Turion 64 X2, Turion II, Opteron, последние модели Sempron;
  • Intel: реализует данную платформу, используя название «Intel 64» EM64T» и «IA-32e»). Поздние модели процессоров Pentium 4, серии Pentium D, Pentium Extreme Edition, Celeron D, Celeron G-серии, Celeron B-серии, Pentium Dual-Core, Pentium T-серии, Pentium P-серии, Pentium G-серии, Pentium B-серии, Core 2 Duo, Core 2 Quad, Core 2 Extreme, Core i3, Core i5, Core i7, Atom и Xeon;
  • VIA: Nano, Eden, QuadCore.


Название

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

  • x86-64 — изначальный вариант названия, под которым компания AMD опубликовала первую предварительную спецификацию.
  • x64 — название версий ОС Windows и Solaris. Используется в качестве названия для архитектуры компаний Microsoft и Sun Microsystems.
  • AA-64(AMD Architecture 64) — название архитектуры, автором которого стал известный неофициальный справочник sandpile.org, по аналогии с IA-64.
  • Hammer Architecture— название основывается на первых ядрах процессоров, поддерживавших данную архитектуру — Clawhammer и Sledgehammer.
  • AMD64 — название технологии, данное фирмой-разработчиком — компанией AMD. Появилось после выпуска первых Clawhammer и Sledgehammer процессоров. На данный момент, является официальным названием для реализации от AMD.
  • Yamhill Tehnology— первичное название аналогичной технологии от Intel. Порой также встречалось название CT (Clackamas Technology).
  • EM64T(Extended Memory 64 Technology) — первое официальное название реализации Intel.
  • IA-32e — название порой употреблялось вместе с EM64T. В основном, использовалось для обозначения «длинного» режима (в документации Intel именуется «режимом IA-32e»).
  • Intel 64 — новое официальное название архитектуры Intel, использующееся в настоящее время. Intel потихоньку отходит от названий IA-32, IA-32e и EM64T, используя это. Теперь оно является единственным официальным названием данной архитектуры со стороны компании Intel.

В настоящее время, самыми распространенными названиями выступают: «x64», «x86-64» и «AMD64». Порой это путает AMD-пользователей — вплоть до отказа использования родных дистрибутивов ОС: пользователь не уверен, будет ли работать выбранная версия на AMD процессоре. На самом же деле, распространители программного обеспечения применяют название amd64 лишь для того, чтобы подчеркнуть, что именно компания AMD является новатором в разработке данной технологии.

Зачастую, пользователи сами путают архитектуру Intel 64 с IA-64. Важно помнить, что Intel 64 и IA-64 — совершенно разные, несовместимые между собой платформы:

  • Представители Intel 64: последние версии Pentium 4, некоторые модели Celeron D, линейка Core 2, Core i3, Core i5, Core i7, некоторые модели Intel Atom;
  • Представители IA-64: семейства Itanium и Itanium 2.


Режимы

Имеется два режима работы данной архитектуры:

«Long Mode»

«Длинный» режим, будучи родным для AMD64, позволяет воспользоваться всеми дополнительными преимуществами архитектуры. Для активации данного режима требуется 64-битная ОС. К примеру, Windows 7 x64 или 64-битные версии UNIX-подобных систем (GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Mac OS X — от версии 10.4.7 и выше).

Данный режим дает возможность работать 64-битным программам, кроме того, доступна и обратная совместимость: имеется поддержка 32-битного кода для работы 32-битных приложений. Но 32-битные программы не имеют возможности читать 64-битные системные библиотеки, а также — наоборот. Для того, чтобы побороть эти ограничения, большая часть 64-разрядных операционных систем предоставляет два набора необходимых системных файлов (для родных 64-битных приложений и для их 32-битных версий). Такая же методика применялась в ранних 32-битных системах (Windows 95) для запуска 16-битных программ.

«Длинный» режим не содержит в себе некоторые «рудименты» x86-архитектуры. Например, режим виртуального 8086, сегментированную модель памяти, аппаратную мультизадачность, и прочее.

«Длинный» режим имеет одну яркую особенность: его активация производится посредством установки флага CR0.PG. Он применяется для включения страничного MMU (если это переключение разрешено (EFER.LME=1). Если переключение недопустимо, включение MMU происходит в «наследственном» режиме.

Так, исполнение 64-битного кода с запрещенным страничным преобразованием невозможно, что приводит к определенным сложностям в программировании, ведь при переключении из «длинного» в «наследственный» режим (и обратно) необходим двойной сброс MMU. Для этого код переключения должен быть в тождественно отображенной странице.

«Legacy Mode»

Этот режим зовется «наследственным» по той причине, что дает возможность процессору AMD64 работать с инструкциями, которые рассчитаны для x86-процессоров. Кроме того, в рамках активации данного режима, осуществляется полная совместимость с 32-битным кодом и соответствующими ОС.

Процессор в «наследственном» режиме работает точно так же, как стандартный x86-процессор. Дополнительные функции, доступные под архитектурой AMD64, становятся неактивны.

При активации данного режима, 64-битные программы и соответствующие операционные системы функционировать не будут.

Особенности

Набор инструкций x86-64 (позже — AMD64), выпущенный компанией AMD — это расширение Intel IA-32 (x86-32). Ключевая отличительная черта AMD64 кроется в поддержке 64-битных регистров общего назначения, а также 64-битных арифметических/логических операций над целыми числами и 64-битных виртуальных адресов.

Чтобы осуществить адресацию регистров, для команд введены специальные «префиксы расширения регистра». Специально для них был выбран диапазон кодов 40h-4Fh, использующихся для команд INC и DEC в 32-битных режимах. Команды INC и DEC в 64-битном режиме кодируются в общей двухбайтовой форме.

Платформа x86-64 включает в себя:

  • Шестнадцать целочисленных 64-битных регистра общего назначения (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 — R15);
  • Восемь 80-битных регистров с плавающей точкой (ST0 — ST7);
  • Восемь 64-битных регистров Multimedia Extensions (MM0 — MM7, общее пространство с регистрами ST0 — ST7);
  • Шестнадцать 128-битных регистров SSE (XMM0 — XMM15);
  • 64-битный указатель RIP и 64-битный регистр флагов RFLAGS.


Сегментирование

В ходе создания архитектуры x86-64, специалисты компании AMD пришли к решению окончательно покончить с главным «рудиментом» архитектуры x86 — сегментной моделью памяти. Она поддерживалась еще во времена 8086/80286.

При создании новой версии продукта виртуализации, программисты VMware обнаружили ряд непреодолимых трудностей. Загвоздки возникали в процессе реализации виртуальной машины для 64-битных систем. Чтобы отделить код монитора от кода «гостя», программа применяла механизм сегментации, но данная задача так и не была реализована на практике.

После ряда неудачных экспериментов, компания AMD возобновила ограниченный вариант сегментной организации памяти (начиная с ревизии D архитектуры AMD64). Это дало возможность запускать 64-битные операционные системы в виртуальных машинах. Компания Intel не стала следовать такому примеру. Чтобы осуществить проверку процессора на предмет возможности запуска 64-битных гостевых операционных систем, VMware снабжает продукты специальной утилитой.

Команды LAHF и SAHF, вырезанные изначально, были возвращены в систему команд из-за их активного использования в программном обеспечении виртуализации.

По мере развития средств аппаратной виртуализации (Intel VT, AMD-V), необходимость в сегментации постепенно утрачивается.

ООО «Альтербит», 197183, Санкт-Петербург, Комендантский проспект, 2 схема проезда
Телефон: (812) 309-2602 ← Звони если хочешь купить сервер, схд, компьютер

Введение в ассемблер Intel x86-64

Архитектура процессоров Intel x86-64 является на сегодняшний день доминирующей архитектурой для различного рода устройств — настольных компьютеров, ноутбуков, серверов. Семейство процессоров Intel обычно классифицируется как машина с архитектурой фон Неймана — такая машина, которая содержит три основных компонента: центральный процессор (ЦП), память и устройства ввода/вывода (I/0). Эти три компонента связаны между собой через системную шину (состоит из шины адреса, данных и управления). Процессор взаимодействует с памятью и устройствами ввода-вывода, передавая через адресную шину числовой адрес участка памяти или порта устройства ввода-вывода. Через шину данных процессор, память и устройства ввода-вывода обмениваются между собой данными. Через шину управления (control bus) передаются сигналы, которые определяют направление передачи данных (в или из памяти, а также в или из устройства ввода-вывода).

Зачем изучать ассемблер в эпоху высокоуровневых языков? Ассемблер помогает лучше понять архитектуру компьютера. Знание ассемблера может помочь при реверс-инжениринге, анализе вирусов и прочих вредоносных программ, а также при их создании и поиске уязвимостей. В конце концов поминание работы ассемблера является важным навыком в низкоуровневом программировании, например, при написании операционных систем и драйверов.

Архитектура x86

Архитектура x86 обозначает большое семейство процессоров как с 16-битной, так и с 32-битной архитектурой набора команд. История x86 началась с выходом процессора Intel 8086 в 1978 году. В 1979 году выходит функционально похожий на 8086 процессор Intel 8088. Последующие поколения этой серии процессоров получили названия 80186, 80286, 80386 и 80486, что привело к возникновению термина «x86» как сокращению для семьи процессоров. В последствии процессоры и серии процессоров Intel, которые представляли эту архитектуру, имели совершенно другие имена, например, серии Pentium, Celeron и т.д., но они принадлежали также к этой архитектуре. Кроме компании Intel процессоры на архитектуре x86 также выпускала компания AMD, в частности, это серии процессоров Athlon, Duron и т.д.

Процессоры 8086 и 8088 были 16-битными, несмотря на 8-битную шину данных в 8088. Регистры в этих процессорах имели разрядность 16 бит, а набор инструкций работал с 16-битными данными. 8086 и 8088 не поддерживали многие функции современных процессоров, например, виртуальную память и уровни защиты. Эти процессоры имели 20 адресных линий, что ограничивало размер используемой память 1 мегабайтом. Но 20-битный адрес не мог поместиться в 16-битный регистр, поэтому для работы с адресами необходимо было использовать несколько сложную систему сегментных регистров и смещений для доступа к полному адресному пространству размером 1 МБ.

В 1985 году компания Intel выпустила процессор 80386, который был важным шагом вперед в развитии архитектуры x86. Этот процессор был 32-битным. И адреса, регистры и АЛУ также имели разрядность в 32 бита, а инструкции изначально работали с операндами размером до 32 бит. Кроме того, он использовал защищенный режим (protected mode), в котором был реализан многоуровневый механизм привилегий из трех уровней — от 0 до 3. Уровень 0 представлял уровень с максимальными правами и предназначался для ядра операционной системы, тогда как уровень 3 предназначался для прикладных пользовательских программ. Уровни 1 и 2 — промежуточные. Стоит отметить, что операционные системы Windows и Linux до сих пор реализуют только 2 уровня — 0 и 3. 80386 поддерживал память размером 4 ГБ, в которой адреса были 32-битными, а манипуляции с сегментными регистрами и смещениями больше не требовались. Кроме того, была добавлена поддержка выгружаемой виртуальной памяти.

После этого процессоры данной архитектуры стали 32-битными.

Архитектура x86 имеет прямой порядок следования байтов ( little-endian ) что означает, что многобайтовые значения хранятся в памяти с младшим значащим байтом по младшему адресу и старшим значащим байтом по старшему адресу.

Архитектура х64

Архитектура х64 изначально представляла расширение процессора x86 и его набора инструкций до 64 бит. Первая специафикация этой архитектуры назвалась AMD64 и была представлена компанией AMD в 2000 году. Первый процессор AMD64, Opteron, был выпущен в 2003 году.

Компания Intel паралелльно развивала собственную 64-разрядную архитектуру, которая называлась IA-64 и которая была несовместима с х86. Результатом развития этой архитектуры стал процессор Itanium, который вышел в 2001 году. Однако затем Intel решили пойти по пути AMD и также стали развивать 64-разрядную архитектуру как расширение для x86 и которая была бы совместима с AMD64, получившую название Intel 64. Первым процессором Intel на 64-разрядной архитектуре — Xeon вышел в 2004 году. В конечном счете эта архитектура стала называться x86-64, отражая эволюцию x86 до 64 бит, и, как правило, для ее названия употребляется сокращение x64 .

Стоит отметить, что первая версия операционной системы Linux, которая поддерживала архитектуру x64, была выпущена в 2001 году, задолго до появления первых процессоров x64. ОС Windows начала поддерживать архитектуру x64 в 2005 году.

Процессоры, которые реализуют архитектуры AMD64 и Intel 64, в значительной степени совместимы на уровне набора инструкций программ пользовательского режима. Между архитектурами есть несколько различий. Как правило, компиляторы операционных систем и языков программирования управляют этими различиями, что делает их редкой проблемой для разработчиков прикладного программного обеспечения. Разработчики же системного программного обеспечения ядра, драйверов и ассемблерного кода должны учитывать эти различия.

Основные особенности архитектуры x64:

  • x64 — это совместимое 64-битное расширение 32-битной архитектуры x86, и большинство программ, особенно прикладных приложений, написанных для 32-битной среды, должны выполняться без изменений на 64-битном процессоре.
  • Восемь 32-битных регистров общего назначения x86 расширены до 64 бит в процессорах x64. Префикс имени регистра R указывает на 64-битные регистры. Например, в x64 расширенный регистр x86 EAX называется RAX. Подкомпоненты регистра x86 EAX, AX, AH и AL по-прежнему доступны в x64.
  • Архитектура x64 реализует практически тот же набор инструкций, что и x86. При работе в 64-битном режиме архитектура x64 по умолчанию размер адреса — 64 бита, а размер операнда — 32 бита.
  • Указатель инструкций, RIP, теперь 64-битный. Регистр флагов, RFLAGS, также расширяется до 64 бит, хотя старшие 32 бита зарезервированы. Младшие 32 бита RFLAGS аналогичны EFLAGS в архитектуре x86.
  • Добавлено восемь 64-битных регистров общего назначения с именами от R8 до R15.
  • Добавлена встроенная поддержка для 64-битных целых чисел.
  • Процессоры x64 сохраняют возможность работы в режиме совместимости с x86. Этот режим позволяет использовать 32-разрядные операционные системы и позволяет любому приложению, созданному для x86, работать на процессорах x64. В 32-битном режиме совместимости 64-битные расширения недоступны.
  • Виртуальные адреса в архитектуре x64 имеют ширину 64 бита, теоретически поддерживая адресное пространство размером 16 экзабайт (EB), что эквивалентно 2 64 байтам. Однако современные процессоры AMD и Intel поддерживают только 48-битное виртуальное адресное пространство. Это ограничение снижает аппаратную сложность процессора, но при этом размер поддерживаемой памяти снижается до 256 терабайт виртуального адресного пространства. Процессоры текущего поколения также поддерживают максимум 48 бит физического адресного пространства. Это теоретически позволяет процессору адресовать 256 ТБ физической оперативной памяти, но современные материнские платы не поддерживают такие размеры DRAM.

Типы ассемблеров

При работе следует определиться с ассемблером, который будет использоваться для сборки программ. Рассмотрим наиболее популярные ассемблеры.

Microsoft Macro Assembler (MASM)

Ассемблер Microsoft Macro Assembler или сокращенно MASM является одним из старейших развиваемых ассемблеров (первая версия вышла аж в 1981 году). Его развивает компания Microsoft. MASM доступен в рамках такого инструмента для разработки приложений, как Visual Studio . Преимуществом MASM является то, что MASM использует для своих инструкций синтаксис Intel. Недостатком MASM является наличие официальной поддержки только для ОС Windows.

Стоит отметить, что также существует неофициальный сайт, посвященный MASM, где можно найти дополнительную информацию по данному ассемблеру — https://www.masm32.com/

GNU Assembler (GAS)

Ассемблер GNU Assembler или сокращенно GAS поставляется как компонент набора компиляторов GCC. Поскольку компиляторы GCC довольно распространенны и являются кроссплатформенными, то GAC соответственно также можно использовать на разных платформах. Из недостатков можно отметить, что GAS использует синтаксис, отличный от синтаксиса Intel (а именно синтаксис AT&T). Хотя последние версии GCC включают параметр «-masm», который при значении «-masm=intel» позволяет встраивать код ассемблера с использованием синтаксиса Intel. Эквивалентным параметром для GAS является «-msyntax=intel» или использование директивы «.intel_syntax».

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

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

Почему не стоит писать «х64» для обозначения «x86_64»?

Спорю в Интернете с человеком, который утверждает, что корректнее писать и говорить именно «x64». Аргумент, что всё это маркетинговый буллшит, придуманный майкрософтом и ораклом, не действует.

Есть какие-нибудь статьи (желательно на английском), где перечислены причины, почему этот термин употреблять не следует?

Какие ещё слова (типа «папочка» в значении «каталог») позволяют детектировать «IT-быдло»?

CYB3R ★★★★★
30.09.15 15:44:23 MSK
1 2 →

x64 на 4 символа короче

Reset ★★★★★
( 30.09.15 15:46:51 MSK )

слишком уж серьезные дискуссии у тебя в интернетах. загони его на ЛОР, он сам тут хлебнет правильного и неправильного

SevikL ★★★★★
( 30.09.15 15:49:41 MSK )
Ответ на: комментарий от Reset 30.09.15 15:46:51 MSK

Kaschenko
( 30.09.15 15:50:38 MSK )

Аргумент, что всё это маркетинговый буллшит, придуманный майкрософтом и ораклом, не действует.

А у тебя какие аргументы в пользу x86-64 ? То, что x86-64 — это маркетинговый буллшит, придуманный АМД. Окей. Только сами АМД уже эту аббревиатуру не используют.

lenin386 ★★★
( 30.09.15 15:51:26 MSK )
Последнее исправление: lenin386 30.09.15 15:54:45 MSK (всего исправлений: 2)

Утверждаю. Bullshit

Спорю в Интернете с человеком, который утверждает, что корректнее писать и говорить именно «x64». Аргумент, что всё это маркетинговый буллшит, придуманный майкрософтом и ораклом, не действует.

А что значит «корректнее» вы определили? Если этот человек пишет документацию для microsoft’овских продуктов, и ему сверху спустили указание использовать обозначение «x64» (а в Microsoft’е это официально так), то правильнее использовать «x64». Не потому что это правильнее вообще, но потому что начальство утвердило писать «x64». Тут либо пиши как приказано, либо увольняйся.

Camel ★★★★★
( 30.09.15 15:51:35 MSK )

Чтобы знали, холопы, кому кланяться.

tailgunner ★★★★★
( 30.09.15 15:51:41 MSK )
Ответ на: Утверждаю. Bullshit от Camel 30.09.15 15:51:35 MSK

Если этот человек пишет документацию для microsoft’овских продуктов

Этот человек — автор очередной говносборочки убунту.

CYB3R ★★★★★
( 30.09.15 15:53:53 MSK ) автор топика

Дай ссылку на википедию.

Polugnom ★★★★★
( 30.09.15 15:55:41 MSK )

Тебе действительно больше заняться нечем?

kirk_johnson ★☆
( 30.09.15 15:56:02 MSK )

Вообще — это конкретно маркетинговый булшит. Мне лично кажется, правильней писать x86_32 и x86_64. x86 означает архитектуру, а второе число разрядность. Но так не пишут именно из-за «богов маркетинга» и особенностей архитектуры, т.к. формально последние 10 лет 32-битных систем они были 48-битными (могу ошибаться, но это касается конкретно адресации памяти, а не работы с числами, PAE режим, с возможностью адресации до 64ГБ памяти и по 4ГБ на процесс). Плюс там своя тёмная история с архитектурами 64-битными, сначала интель выкатила неудачную IA-64 в плане совместимости с 32 битами, потом только появилась amd64, которую перелизенцировали и каждый начал называть по-своему.

В общем, можно расслабиться и называть, как хочется самому.

nickleiten ★★★
( 30.09.15 15:56:15 MSK )
Ответ на: комментарий от Polugnom 30.09.15 15:55:41 MSK

CYB3R ★★★★★
( 30.09.15 15:56:22 MSK ) автор топика

ncrmnt ★★★★★
( 30.09.15 15:57:00 MSK )

Если у Oracle так написано, то всё — идите лесом.

Всегда употребляюю как x64

fornlr ★★★★★
( 30.09.15 15:58:10 MSK )

Дело в том, что есть ещё ia64, которая itanium. Обозначение x86_64 путаницу с итаником исключает (очевидно, речь идёт об очередной мутации x86), а вот обозначение x64 совсем не такое наглядное.

Впрочем, мне больше нравится обозначение amd64, в дань памяти amd.. То, что мы на сегодняшний день имеем 64-битные x86 процессоры в каждом ноуте, в каждом декстопе, в каждом сервере — целиком и полностью заслуга амд. Интел не планировал x86-подобных 64-битных процессоров, он планировал итаники.

Manhunt ★★★★★
( 30.09.15 15:59:45 MSK )
Последнее исправление: Manhunt 30.09.15 16:05:54 MSK (всего исправлений: 1)

x64 можно спутать с ia64 (Itanium).

omnomnomnus ★
( 30.09.15 16:01:07 MSK )
Ответ на: комментарий от nickleiten 30.09.15 15:56:15 MSK

Плюс там своя тёмная история с архитектурами 64-битными, сначала интель выкатила неудачную IA-64 в плане совместимости с 32 битами

Всё там было удачно. История была такая. Итаник позиционировался как проц какой-то о#уительной производительности. Ну, разумеется, цена обязывала. Народ запускал 32-х битные приложения, и видел производительность 4-го пня. На что Интел отвечала, что де Итаник для них не оптимизирован. Но почему-то все молчали о том, что и на 64-х битных приложениях Итаник показывал производительность 4-го пня.

lenin386 ★★★
( 30.09.15 16:01:11 MSK )
Последнее исправление: lenin386 30.09.15 16:02:38 MSK (всего исправлений: 2)

Ответ на: комментарий от Reset 30.09.15 15:46:51 MSK

Вообще-то на 3, но ты прав, это киллер-фича.

Stil ★★★★★
( 30.09.15 16:02:05 MSK )
Ответ на: комментарий от Stil 30.09.15 16:02:05 MSK

Если считать по нажатию кнопок на клавиатуре, то на 5

Reset ★★★★★
( 30.09.15 16:13:17 MSK )

А как же вызов бугурта?

Deleted
( 30.09.15 16:15:36 MSK )

Название (x86) образовано от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486).

Потому чисто исторически не очень корректно использовать «x64», т.к. это может ввести в заблуждение, будто бы существовали процы с такой архитектурой, модельки которых заканчивались бы на «64».

Sadler ★★★
( 30.09.15 16:17:10 MSK )
Ответ на: комментарий от nickleiten 30.09.15 15:56:15 MSK

Мне лично кажется, правильней писать x86_32 и x86_64

Вообще-то там дефис или минус, а не подчёркивание. Просто чтобы не портить структуру триплета machine-vendor-operatingsystem, стали использовать подчёркивание.

i-rinat ★★★★★
( 30.09.15 16:18:24 MSK )

Какая разница как писать если вы оба понимаете о чем речь? Но если уж правильно то amd64.

mbivanyuk ★★★★★
( 30.09.15 16:19:54 MSK )

Потому, что 86 больше 64х, лол.

nvidia
( 30.09.15 16:21:56 MSK )

Потому что не было никогда никакого x64. Не приходило в голову, что «x» там не просто для красоты?

buddhist ★★★★★
( 30.09.15 17:33:58 MSK )
Ответ на: комментарий от lenin386 30.09.15 16:01:11 MSK

Но почему-то все молчали о том, что и на 64-х битных приложениях Итаник показывал производительность 4-го пня.

Производительность сосала на x86 приложениях прежде всего, а в родных то кодах никто особо бенчмарками не баловал, да и до сих пор так — поди найди сравнение производительности итаниума с другими на каких нибудь сходных задачах, хрен найдешь.

uin ★★★
( 30.09.15 17:41:42 MSK )
Ответ на: комментарий от Reset 30.09.15 15:46:51 MSK

теперь понятно, почему у яндекса все так хреново со всеми сервисами

leave ★★★★★
( 30.09.15 17:45:36 MSK )
Ответ на: комментарий от Sadler 30.09.15 16:17:10 MSK

Название (x86) образовано от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486).

после 8086 перед 80186 был 8088

Deleted
( 30.09.15 18:14:02 MSK )

targitaj ★★★★★
( 30.09.15 18:15:38 MSK )

«x64» хорошо смотрится рядом с «x32». «x86_64» хорошо смотрится рядом с «x86».

PolarFox ★★★★★
( 30.09.15 18:18:01 MSK )
Ответ на: комментарий от buddhist 30.09.15 17:33:58 MSK

Расскажи, а? Я что-то отстал от жизни.

greenman ★★★★★
( 30.09.15 18:24:09 MSK )
Ответ на: комментарий от fornlr 30.09.15 15:58:10 MSK

Если у Oracle так написано, то всё — идите лесом.

Правильно! Таким с$ы в глаза, а они: «это божья роса!» :))

Deleted
( 30.09.15 18:28:36 MSK )

в интернете кто-то неправ?

darkenshvein ★★★★★
( 30.09.15 18:29:36 MSK )
Ответ на: комментарий от greenman 30.09.15 18:24:09 MSK

buddhist ★★★★★
( 30.09.15 18:34:47 MSK )

Kaschenko
( 30.09.15 18:57:04 MSK )

насколько помню, у вендоров в 90е годы был акцент именно на 64bit CPU.

F после выхода первого Атлона с 64битными расширениями.
тогда в интернетах и переименовали архитектуру х86 в х64

по логике «х» теперь уже сложившийся префикс Штеуд-архитектуры.

Deleted
( 30.09.15 19:17:26 MSK )

x64 обратно не совместима с x86,отсюда — это разные принципиально архитектуры.

an-ha ★★
( 30.09.15 19:18:51 MSK )
Ответ на: комментарий от nickleiten 30.09.15 15:56:15 MSK

Но так не пишут именно из-за «богов маркетинга» и особенностей архитектуры, т.к. формально последние 10 лет 32-битных систем они были 48-битными (могу ошибаться, но это касается конкретно адресации памяти, а не работы с числами, PAE режим, с возможностью адресации до 64ГБ памяти и по 4ГБ на процесс).

разрядность процессора — длина шины данных.

А длина шины памяти (шина памяти даже у pentium pro более чем 20 лет назад уже была 36 бит, что как раз давало эти 64ГБ через PAE) — это другое.

лет 30-40 назад 8-битные процессоры внезапно могли уметь в 65к адресное пространство напрямую (это без всякого дрочева с переключением банков памяти/сегментных регистров) — т.к. у них была 16 битная шина памяти.

n_play ☆
( 30.09.15 19:41:12 MSK )
Ответ на: комментарий от Reset 30.09.15 15:46:51 MSK

KennyMinigun ★★★★★
( 30.09.15 19:51:09 MSK )
Ответ на: комментарий от Reset 30.09.15 16:13:17 MSK

Если считать по нажатию кнопок на клавиатуре, то на 5

KennyMinigun ★★★★★
( 30.09.15 19:53:37 MSK )
Ответ на: комментарий от PolarFox 30.09.15 18:18:01 MSK

Особо педантные серы пишут x86_32

KennyMinigun ★★★★★
( 30.09.15 19:54:38 MSK )
Ответ на: комментарий от KennyMinigun 30.09.15 19:53:37 MSK

Ну да, ступил, посчитал x86_ за префикс 🙂

Reset ★★★★★
( 30.09.15 20:33:42 MSK )

64-битными бывают не только интелы, но и всякие ARM, а быть может и ещё что-то. То есть 64-битность вообще ничего не говорит о семействе процессоров.

В «x86» икс не просто так стоит — это заменитель цифры. Ибо были процессоры 386, 486, 586. И чтобы обозначить всю линейку указывают совпадающие две цифры, а вместо первой ставят икс. Линейки процессоров x64 никогда не существовало (нет никаких 364, 464 и т. д.)

x86_64 это расширение x86. Процессоры, которые поддерживают данную архитектуру полностью совместимы с кодом x86-only, просто добавился ещё один режим работы (раньше были real mode и protected mode, а добавили long mode), не более того. Был ещё IA64 — вот он не имел полной обратной совместимости с x86, являясь новой архитектурой по сути. Но его закопали.

То есть нет какой «64-битной архитектуры от Intel» самой по себе (не считая мёртвой IA64), есть лишь набор расширений для x86, который добавляет один новый режим работы. Не бывает 64 бит без legacy x86. А значит x86_64 — самое правильное название.

KivApple ★★★★★
( 30.09.15 20:45:04 MSK )
Relan ★★★★★
( 30.09.15 21:07:07 MSK )

Обычно быдло это те кому нечему заняться, кроме как трепаться про правильно-неправильно. Всем по***. Если тебе нет, то взял бы и написал статью об этом, исследования провёл, опросы, таблицы, графики нарисовал. Сравнил бы устои и обычии отдельных групп, там, например, те кто плотно работали с IA-64 как они произносят, как произносят среди кулхацкеров ядра Linux, написал бы письмо Торвальдсу, Столлману или я не знаю, автору raspberry-pi. Вот это было бы позновательно и интересно, а для кого-то (в том числе, возможно, и твоего оппонента) авторитетно. Но нет, тебе подавай как и любому быдло все готовое :)))) Без наездов, просто твой взгляд на мир «за глаза» ставить людям клеймо.

gh0stwizard ★★★★★
( 30.09.15 21:20:24 MSK )
Последнее исправление: gh0stwizard 30.09.15 21:23:49 MSK (всего исправлений: 2)

Ответ на: комментарий от uin 30.09.15 17:41:42 MSK

в родных то кодах никто особо бенчмарками не баловал, да и до сих пор так — поди найди сравнение производительности итаниума с другими на каких нибудь сходных задачах, хрен найдешь.

Бенчмарки легко пишутся самостоятельно. Любая вычислительная задача берёшь, компилишь, считаешь. Все, кому было реально нужно и интересно, это сделали очень давно. А не найдешь бенчмарки потому, что на правде не заработаешь. И если бы Интелу было, чем хвастасться, они бы это сделали.

lenin386 ★★★
( 30.09.15 21:35:16 MSK )
Последнее исправление: lenin386 30.09.15 21:42:32 MSK (всего исправлений: 2)

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

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