¿Cuál es el estado actual de la implementación x32 ABI en Ubuntu a partir de 14.04?

11

Las notas de la versión 14.04 contienen la siguiente oración:

También se introdujo el soporte X32 ABI (modo de 64 bits con punteros de 32 bits).

Creo que esto merece un poco más de explicación. Cuando utiliza un motor de búsqueda para obtener más información sobre "x32 ABI", puede encontrar un artículo de Wikipedia en el mejor de los casos, pero sobre todo Phoronix y Slashdot, que no parecen ser muy útiles.

Me gustaría ver algunas respuestas perspicaces sobre:

  • ¿Cómo o qué de x32 ABI se implementa actualmente en 14.04?
    • ¿Está habilitado de manera predeterminada en 14.04 64-Bit o hay pasos adicionales necesarios para configurar x32 ABI?
    • ¿Qué componentes o qué software puede usar x32 ABI?
  • ¿Existen beneficios reales en una máquina / instalación que ejecuta x32 ABI?
    • ¿Cómo es el consumo de memoria en comparación con las instalaciones predeterminadas de 32 bits y 64 bits?

Idealmente, el x32 ABI debería haber reunido lo mejor de ambos mundos: la mayoría de las mejoras de velocidad de x86-64 y un menor consumo de memoria para los usuarios de hardware antiguo con capacidad de 64 bits que no tenía mucha RAM .

LiveWireBT
fuente
Tengo curiosidad por esto yo mismo. Una cosa que puedo decirte sobre el uso de memoria x32 es que usa direccionamiento de 32 bits (el mismo límite de 4 GB que x86). Dado que los procesadores de 64 bits usan direccionamiento de memoria de 64 bits, las referencias de memoria deben almacenarse en 64 bits en la memoria, el doble de los 32 bits necesarios para almacenar referencias de memoria en modo de 32 bits. Por lo tanto, 64 bits es implícitamente peor en la memoria en algunos casos cuando se utilizan muchas referencias de memoria (punteros).
Chuck R
aquí un estudio sobre rendimiento y x32: cds.cern.ch/record/1528222/files/LHCb-TALK-2013-060.pdf
Postadelmaga

Respuestas:

5

En la instalación de 64 bits, experimentará grandes diferencias en el uso de la memoria (especialmente para aplicaciones como Chrome, Firefox, MySQL y Java).

Este es un efecto secundario bien conocido de los sistemas operativos de 64 bits de todos modos, 64 bits también trae alguna otra ventaja.

Aquí viene x32 ABI: una característica del núcleo que está destinada exactamente a limitar este problema.

Qué es x32 ABI:
según este pdf , proporciona una gran ventaja de memoria en comparación con un SO normal de 64 bits (incluso una mejora del 40%).

Ahora, si he entendido, x32-ABI requiere :

  • Linux Kernel 3.4 compilado con CONFIG_X86_X32 = y
  • Gcc 4.7
  • Binutils 2.22
  • Glibc 2.16
  • Recompilar todas las bibliotecas del sistema, requeridas por una aplicación, con gcc -mx32

Cómo probarlo El
nuevo núcleo tiene el indicador requerido de manera predeterminada, por lo que solo necesita el paquete compilado de la manera correcta (aquí Gentoo para reglas seguras;)
En Ubuntu no estoy seguro de que haya un repositorio / ppa para esto, de todos modos Debian y Arch tener alguna solución:

Debian

Arco

Postadelmaga
fuente
Supongo que necesita agregar opciones de kernel en grub como se dice en la wiki de Debian.
jarno
1
Desde el punto de vista del usuario final de Ubuntu, la instalación de un sistema Ubuntu x32-ABI parece ser demasiado difícil :(
jarno