Windows x64 или x86 - какой ставить? Чем архитектура ARM отличается от x86 Устройства работающие на x86 и x64.

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 («длинный» режим);
  • Legacy mode («наследственный» режим).

«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), необходимость в сегментации постепенно утрачивается.

Для многих пользователей операционной системы Windows не секрет, что существует две ее версии по типу разрядности. Это 32 битная и 64. Знать разрядность своей операционной системы нужно каждому, ведь при поиске и скачивании драйверов, программ и игр она учитывается.

Но с обозначениями разрядности системы, а также драйверов и программ существует некоторая путаница. Есть три обозначения двух разрядностей — x32, x64 и x86. По этой причине часто возникает вопрос 32 разрядная версия это x64 или x86?

Ответ на данный вопрос вы найдете в этой статье.

Второе обозначение 32 разрядной версии ПО

Чтобы впредь исключить путаницу обозначений разрядности программного обеспечения, к которому относится операционная система, драйвера, программы и игры, запомните, что существует две основные версии разрядности ПО — это 32 бита и 64 бита. 64 битная версия может обозначаться только как x64, а вот 32 битная может обозначаться как x32, так и x86.

Вот пример обозначения 64 битной версии драйвера для ноутбука на его официальном сайте:

А вот возможные варианты обозначения 32 битной версии:

Обозначение разрядности на сайте с драйверами

Обозначение разрядности в описании программы

Из всего вышеописанного можно сделать вывод, что 32 разрядная версия ПО это x86.

x64 обозначается 64 битная версия какого — либо программного обеспечения. Учтите это при подборе версии драйверов и любых других программ.

Для того, чтобы просмотреть какая у вас разрядность операционной системы, достаточно нажать правой кнопкой мыши по значку «Компьютер» на рабочем столе и выбрать «Свойства».

Так что теперь у вас есть проблема, если вы пишете библиотеку, которая будет использоваться как кодом старой школы, написанным с wchar_t , определённым как псевдоним для unsigned short , так и кодом новой школы, написанным с wchar_t как отдельным внутренним типом. Какой тип данных вам нужно использовать для строковых параметров?

Это перевод The sad history of Unicode printf-style format specifiers in Visual C++ .

Windows реализовала Unicode раньше, чем большинство других операционных систем. В результате решения Windows для многих проблем отличаются от решений, принятых теми, кто подождал, когда пыль осядет¹. Самым ярким примером этого является использование Windows UCS-2 в качестве кодировки Unicode. Тогда это была кодировка, рекомендованная консорциумом Unicode, потому что Unicode 1.0 поддерживал только 65"536 символов². Консорциум Unicode передумал пять лет спустя, но к тому времени было уже слишком поздно для Windows, которая уже выпустила Win32s, Windows NT 3.1, Windows NT 3.5, Windows NT 3.51 и Windows 95 - все из которых использовали UCS-2³.

Но сегодня мы поговорим о строках формата в стиле printf .

Это перевод If FlushInstructionCache doesn’t do anything, why do you have to call it, revisited .

Предполагается, что вы будете вызывать функцию FlushInstructionCache , когда вы генерируете или модифицируете исполняемый код в run-time - чтобы процессор при выполнении вашего сгенерированного/модифицированного кода читал бы написанные вами инструкции, а не старые инструкции, которые могут остаться в кеше команд процессора.

Ранее мы узнали, что . Это потому, что простого вызова функции было достаточно, чтобы очистить кэш команд.

Но в Windows NT функция FlushInstructionCache выполняет реальную работу, поскольку ей необходимо уведомить все остальные процессоры о необходимости очищать их кэши.

Однако если вы посмотрите на Windows 10, то вы обнаружите, что функция FlushInstructionCache выглядит как версия для Windows 95: она ничего не делает .

В чём тут дело?

В сегодняшней статье разберемся, какая платформа лучше подойдет Вашему компьютеру: x64 или x86(x32)? Ведь многие задают себе вопрос: что лучше? 32 или 64 битная версия ОС - решать Вам, но, думаю, лучше знать, как сделать правильный выбор!

Поскольку у Вас уже наверняка установлена операционная системы, Вы можете легко .

Я не буду вдаваться в "дебри" процессорной эволюции и "начинке", а попытаюсь объяснить основные положения.

Давайте вначале разберемся, откуда вообще взялись все эти архитектуры и разрядности?

32-битная архитектура x86 (286-, 386-, 486-совместимые микропроцессоры) названы так по своей -86 концовке. А х32 и х64 - это уже разрядность процессора. Поэтому корректно различать два основных типа архитектур: x86 и х64 (x32 - это некорректное название x86).

Итак, в чем же их отличие?

Это - потребляемость аппаратных ресурсов компьютера. Дело в том, что некоторые Intel и AMD процессоры на x64 не рассчитаны.
Кроме того, x64 рассчитана на не менее 4 GB ОЗУ Вашего ПК . Собственно, для этого она и разрабатывалась.
И третье - какую нагрузку испытывает компьютер при работе. Если Вы - дизайнер, верстальщик или человек, которые использует очень мощные приложения компаний Adobe и прочих мультимедиа-гигантов, то Вам приоритетнее будет х64. Если же у Вас 4

Так что же выбрать?

Поэтому при выборе архитектуры микропроцессора, всегда реально оценивайте мощности и возможности вашего компьютера. Кроме того, для x64 разрядных систем требуются свои(!) драйвера, отличные от x32. Да, x64, может, и будет работать быстрее, но со своими приложениями. А тридцати двух разрядные в свою очередь как работали, так и будут, что там, что там.

Удачи!

Похожие новости:


Разное

Дата публикации: 23.02.2012

В данной статье мы узнаем, что такое 32 и 64-битные системы и программы, и что означает x86, x64, x32. А также решим, какую систему устанавливать на ваш компьютер или ноутбук.

Что «это» такое?

Разделение на 32 и 64 бит связано, прежде всего, с типом процессоров в вашем компьютере или ноутбуке. Раньше (много лет назад) все процессоры в компьютерах были 32-битными. А ещё раньше они были 8 битными. Т.е. чем больше «битность» вашего процессора, тем он быстрее и лучше решает все системные задачи и быстрее проводит операции. Таким образом 64 битные процессоры работают быстрее, чем 32-битные.

На современных компьютерах установлены, в основном, 64-битные процессоры. Лет через 5 появятся и 128-битные процессоры. Как никак, наука и технологии не стоят на месте.

Операционные системы

Помимо того, что ОС Windows бывают разных видов (ХР, 7 и т.д.), они также подразделяются на версии x86 и х64. Соответственно, если у вас 64-битный процессор, то и систему нужно устанавливать x64.

Кстати, х86 означает 32-битную систему. Почему называется х86, а не х32? Этого почти никто не знает. Раньше 32-битные системы так и писались х32. А затем их стали называть х86, хотя сути это не поменяло - это всё та же 32-битная система. На мой взгляд, такое переименовывание - это, ни что иное, чем хитрый маркетинговый ход, чтобы выдать старое за нечто новое.

Если вы установите на компьютер с 64-битной архитектурой 32-битную ОС, то компьютер всё равно будет работать нормально. И наоборот, если установить х64 на 32-битный компьютер, то всё тоже будет работать нормально.

В чём различия?

Одно из главных отличий между системами х86 и х64 заключается в использовании оперативной памяти вашего компьютера. Предел использования оперативной памяти для 32-битных систем составляет 3 ГБ. А потому, если на вашем компьютере или ноутбуке оперативная память превышает 3 ГБ, то система не будет использовать оставшуюся часть. Т.е. На компьютере с 8гб оперативной памяти, 5 ГБ просто не будет использоваться. Конечно, есть специальные утилиты, помогающие это исправить, но всё же...

А потому отсюда следует главное правило: Если у вашего компьютера больше 3 ГБ оперативной памяти, то устанавливайте на него ОС х64 (64-битную).

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

Что же лучше: х86 или х64?

Прочитав вышеперечисленное, у вас, вероятно, сложилось впечатление, что 64-битные системы намного лучше и быстрее, а потому на все компьютеры и ноутбуки лучше устанавливать именно х64. А вот и нет!

Главный минус состоит в том, что 64-битные программы используют для своей работы гораздо больше оперативной памяти. А потому, если у вас мало оперативной памяти, то устанавливать х64 будет глупо. К тому же, нужно учесть, что и сама ОС тоже использует часть оперативной памяти.

Например:
У вас есть компьютер или ноутбук с 2 ГБ оперативной памяти и с процессором 32 бита. Вы устанавливаете на него Windows 7 x64. Многие школьники любят на все компьютеры подряд устанавливать 64-битную Windows 7 (юношеский максимализм). А теперь давайте считать: 768 МБ использует Windows 7, плюс 64-битные программы, которые тоже используют больше оперативной памяти. Таким образом, получается, что вы сводите мощность своего «железа» к минимуму. А потому лучше на такой компьютер или ноутбук установить 32-битную Windows XP.

Кстати, некоторые 64-битные приложения работают нестабильно. Но таких программ становится всё меньше и меньше.

Вывод

Если у вас мощный и современный компьютер с процессором 64-бита и ОЗУ больше 3 ГБ, то смело устанавливайте Windows 7 x64. На слабые же компьютеры можно установить ХР. Кстати, есть 64-битные версии Windows ХР, что очень удобно, если у вас ноутбук с 2-3 ГБ ОЗУ и 64-битным процессором.


Последние статьи раздела «Компьютеры & Интернет»:


Комментарии статьи:

Великолепная передача мысли - абсолютно всё понятно, о чем говорит автор. И вопрос затронут важнейший: ставить ПО - не ставить?! Но как это обосновать или опровергнуть?! С удовольствием бы поверил и принял как руководство! Но противники тоже, кажется, складно звонят?!

Очень полезная статья

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

Очень хорошо! Мне понравилось.

Спасибо! Всё просто и понятно)

Че за ламер написал эту статью? Верхушек по нахватался и возомнил себя гуру!!! "Почему называется х86, а не х32? Этого почти никто не знает" Изначально процессоры компании Intel имели 86 команд. По этому x86 относится только к процессорам Intel и их клонам имеющим в основе 86 команд. К разрядности это число не имеет никакого отношения поскольку и x64 процессоры содержат эти команды. Все остальное тоже отсебятина и вранье. Windows x32 прекрасно работает с оперативкой больше 4г и даже больше 8г и с 16г тоже. Возмите к примеру windows server x32. Ограничение поставили мелкомягкие чтобы расширить рынок.

Статья очень информативная, спасибо.

Спасибо за работу!!! Очень информативная и полезная статья!!!+++

Спасибо большое всё стало понятно! Очень полезная статья!

Понятно что всё не понятно!

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

какую устанавливать винду х86 или х64 надо смотреть на железо.процессор и материнская плата и соответственно операционная система.все должно поддерживать только одну архитектуру.или х86 или х64 ибо они между собой НЕ СОВМЕСТИМЫ...

У меня раньше была Windows7 32бит,установил другую win8 когда устанавливал понечайности выбрал 64бит и нормально работает)

Х86 как таковой не существует, есть х32, есть х64, есть i860 - номер первого совместимого процессора. Вообще номиналом (Х) в элетронике обозначаются контакты на разъёмах, соответственно х32 - 32 входных контакта, 64 - 64 контакта. Но мы живём в России полюбопытствуйте в какое понятие превратилось знаменитое ИМХО. Привыкайте!

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

Артем спасибо все конкретно изложено и понятно

Спасибо за статью.

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

Скажите на 64 bit процессор с 3гб оперативы все таки какую ОС луше повесить 86 или 64

На самом деле можно установить 64битную систему на 32 битный проц, т.к. 64битные ос могу работать в режиме 32