Ports/x8664: различия между версиями
< Ports
(+arepo) |
Yaleks (обсуждение | вклад) Нет описания правки |
||
(не показаны 3 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
64-битный порт был начат Антоном Качаловым (mouse@) в 2004 году, на данный момент является штатным/синхронным (и по факту рекомендованным). | |||
64-битный порт был начат Антоном Качаловым (mouse@) в 2004. | |||
= Особенности работы с портом = | |||
* [[Ports/x8664/32bitOn64bit|Сборка 32-битных пакетов в 64-битной системе]] | * [[Ports/x8664/32bitOn64bit|Сборка 32-битных пакетов в 64-битной системе]] | ||
* [[Ports/x8664/32bitLIBGLon64bit|Запуск 32-битных программ в 64-битной системе с использованием libGL (с помощью hasher]]) | * [[Ports/x8664/32bitLIBGLon64bit|Запуск 32-битных программ в 64-битной системе с использованием libGL (с помощью hasher]]) | ||
= | = Особенности архитектуры x86_64 = | ||
* Нативная поддержка | * Нативная поддержка 64-битных целых (соответственно ускорение работы с ними). | ||
* Удвоенное количество регистров (вместо 8 - 16). Соответственно можно больше информации загрузить в регистры и оперировать с ними. | * Удвоенное количество регистров (вместо 8 - 16). Соответственно можно больше информации загрузить в регистры и оперировать с ними. | ||
* Вдвое больше SIMD регистров (SSE) (8-16) | * Вдвое больше SIMD регистров (SSE) (8-16). | ||
* Больше виртуального адресного пространства (2^48 байт). | * Больше виртуального адресного пространства (2^48 байт); см. тж. [https://cl4ssic4l.wordpress.com/2011/05/24/linus-torvalds-about-pae/ мнение Линуса насчёт PAE]. | ||
* Больше физической памяти (очевидно) | * Больше физической памяти (очевидно). | ||
* Поддержка смещения по указателю текущей инструкции (%rip). Полезна для всяких -fPIC и -fPIE, то есть для relocatable objects. | * Поддержка смещения по указателю текущей инструкции (%rip). Полезна для всяких -fPIC и -fPIE, то есть для relocatable objects. | ||
* SSE и SSE2 во всех | * SSE и SSE2 во всех 64-битных процессорах. Соответственно, все программы в бинарных дистрибутивах типа Альт автоматически собраны под более совершенную архитектуру, чем i586. | ||
* Аппаратный | * Аппаратный NX bit. Полезен, например для ExecShield, когда все стеки маркируются как неисполняемые. | ||
* Pacifica/AMD-V | * Pacifica/AMD-V. | ||
= Проблемы архитектуры x86_64 = | |||
* Большие указатели - больше памяти требуется программам, хуже используется кэш, программы | * Большие указатели -- больше памяти требуется программам, хуже используется кэш, программы могут работать медленнее (см. тж. [[:ruwp:X32_ABI|X32 ABI]]) | ||
* Закрытый софт | * Закрытый софт (десять лет спустя уже не так актуально, плюс см. [[biarch]]). | ||
=== | [[Category:Sisyphus]] | ||
{{Category navigation|title=Ports|category=Ports|sortkey=*}} | |||
Текущая версия от 20:09, 26 марта 2016
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.