Ports/x8664
< Ports
Версия от 00:01, 8 февраля 2016; MichaelShigorin (обсуждение | вклад) (чуть переработал/обновил, убрал плашку fs.i)
64-битный порт был начат Антоном Качаловым (mouse@) в 2004 году, на данный момент является штатным/синхронным (и по факту рекомендованным).
Особенности работы с портом
- Сборка 32-битных пакетов в 64-битной системе
- Запуск 32-битных программ в 64-битной системе с использованием libGL (с помощью hasher)
Особенности архитектуры x86_64
- Нативная поддержка 64-битных целых (соответственно ускорение работы с ними).
- Удвоенное количество регистров (вместо 8 - 16). Соответственно можно больше информации загрузить в регистры и оперировать с ними.
- Вдвое больше SIMD регистров (SSE) (8-16).
- Больше виртуального адресного пространства (2^48 байт); см. тж. мнение Линуса насчёт PAE.
- Больше физической памяти (очевидно).
- Поддержка смещения по указателю текущей инструкции (%rip). Полезна для всяких -fPIC и -fPIE, то есть для relocatable objects.
- SSE и SSE2 во всех 64-битных процессорах. Соответственно, все программы в бинарных дистрибутивах типа Альт автоматически собраны под более совершенную архитектуру, чем i586.
- Аппаратный NX bit. Полезен, например для ExecShield, когда все стеки маркируются как неисполняемые.
- Pacifica/AMD-V.
Проблемы архитектуры x86_64
- Большие указатели -- больше памяти требуется программам, хуже используется кэш, программы могут работать медленнее (см. тж. x32)
- Закрытый софт (десять лет спустя уже не так актуально, плюс см. biarch).