x64 и x86 — архитектуры процессоров¶
x86 — семейство архитектур центральных процессоров, начавшееся с Intel 8086 (1978 год), а x64 (также AMD64, x86-64) — расширение этой архитектуры с 64-битной адресацией памяти, представленное в 2003 году. Термин «x86» в разговорной речи обычно обозначает 32-битный набор команд IA-32, а «x64» — 64-битный. Оба используются в персональных компьютерах, серверах и ноутбуках.
¶Происхождение названий
¶x86
Семейство получило название по первому процессору — Intel 8086. За ним последовали 80186, 80286, 80386, 80486, что и закрепило приставку «8x86». Начиная с Pentium Intel отказалась от числовой нумерации моделей, но архитектура осталась той же. 32-битный набор команд, введённый с 80386 (1985), называют IA-32 (Intel Architecture 32-bit).
¶x64
В 2003 году компания AMD представила расширение 64-битной адресации для архитектуры x86 — AMD64 (известное также как x86-64). Intel изначально развивала несовместимый 64-битный вариант Itanium (IA-64), но позже приняла AMD64 под названием EM64T, затем Intel 64. Microsoft и другие разработчики ПО используют обозначение x64.
¶Ключевые отличия
| Параметр | x86 (32-бит) | x64 (64-бит) |
|---|---|---|
| Разрядность адресации | 32 бита | 64 бита |
| Максимум адресуемой памяти | 4 ГБ (теоретически) | 16 ЭБ (теоретически) |
| Регистры общего назначения | 8 (EAX, EBX…) | 16 (RAX, RBX…, R8–R15) |
| Поддержка ОС | Windows XP/7 32-bit и др. | Windows 7/10/11 64-bit и др. |
Главное практическое отличие — объём оперативной памяти. 32-битная ОС физически не может адресовать более 4 ГБ ОЗУ (часть диапазона отводится под аппаратные нужды, поэтому реально доступно около 3,2–3,5 ГБ). 64-битная ОС работает с памятью практически без ограничений — в реальности предел определяется разрядностью контроллера памяти и версией ОС (например, Windows 10 Home поддерживает до 128 ГБ, Pro — до 2 ТБ).
¶Совместимость
x64-процессоры полностью поддерживают 32-битный код — запуск 32-битных программ на 64-битной ОС работает через слой WOW64. Обратная совместимость невозможна: 64-битные приложения на 32-битной ОС не запускаются. Большинство современных дистрибутивов Linux и Windows поставляются только в 64-битном варианте; 32-битные сборки встречаются только для устаревшего оборудования.
¶Как определить разрядность системы
В Windows: Параметры → Система → О системе, раздел «Тип системы». В Linux: команда uname -m (вывод x86_64 означает 64-битную систему, i686 — 32-битную). В macOS: Информация о системе → Архитектура.
¶Что выбрать
Для современных задач рекомендуется x64: поддержка более чем 4 ГБ ОЗУ, лучшая производительность в 64-битных приложениях, доступ к расширенным регистрам. 32-битная архитектура сохраняет значение только для устаревшего оборудования, встраиваемых систем и специализированного ПО без 64-битных версий. Большинство современных программ распространяется в 64-битном варианте, а браузеры (Chrome, Firefox) отказались от 32-битных сборок для настольных ОС.
¶Другие 64-битные архитектуры
Необходимо отличать x64 от ARM64 (AArch64) — 64-битной архитектуры ARM, используемой в смартфонах, планшетах, Apple Silicon и серверах Graviton. ARM64 и x64 несовместимы на уровне машинного кода, хотя обе поддерживают 64-битную адресацию. В Apple macOS с 2020 года x64 постепенно заменяется ARM64 через трансляцию Rosetta 2.
Источники:
- Intel 64 and IA-32 Architectures Software Developer's Manual
- AMD64 Architecture Programmer's Manual
- Microsoft Docs: Windows on x64
- «Inside the Machine» — Jon Stokes
- «Computer Architecture: A Quantitative Approach» — John L. Hennessy, David A. Patterson
