Qual é o status atual da implementação da ABI x32 no Ubuntu a partir de 14.04?


11

As notas de versão 14.04 contêm a seguinte frase:

Também foi introduzido o suporte ao XI ABI (modo de 64 bits com ponteiros de 32 bits).

Eu acho que isso merece um pouco mais de explicação. Quando você usa um mecanismo de pesquisa para descobrir mais sobre "x32 ABI", pode encontrar um artigo da Wikipedia, na melhor das hipóteses, mas principalmente Phoronix e Slashdot, que não parecem ser muito úteis.

Gostaria de ver algumas respostas interessantes sobre:

  • Como ou o que da ABI x32 é atualmente implementado em 14.04?
    • Ele está ativado por padrão no 14.04 64-Bit ou existem etapas adicionais necessárias para configurar o x32 ABI?
    • Quais componentes ou software podem usar a ABI x32?
  • Existem benefícios reais em uma máquina / instalação executando o x32 ABI?
    • Como é o consumo de memória em comparação com as instalações padrão de 32 bits e 64 bits?

Idealmente, a ABI x32 deveria ter reunido o melhor dos dois mundos: a maioria das melhorias de velocidade de x86-64 e menor consumo de memória para usuários em hardware antigo com capacidade para 64 bits e sem muita RAM .


Eu também estou curioso sobre isso. Uma coisa que posso dizer sobre o uso da memória x32 é que ele usa endereçamento de 32 bits (o mesmo limite de 4 GB que o x86). Como os processadores de 64 bits usam o endereçamento de memória de 64 bits, as referências de memória precisam ser armazenadas na memória de 64 bits - o dobro dos 32 bits necessários para armazenar referências de memória no modo de 32 bits. Portanto, 64 bits é implicitamente pior na memória em alguns casos quando muitas referências de memória (ponteiros) são usadas.
Chuck R.

aqui um estudo sobre o desempenho e x32: cds.cern.ch/record/1528222/files/LHCb-TALK-2013-060.pdf
Postadelmaga

Respostas:


5

Na instalação de 64 bits, você encontrará grandes diferenças no uso de memória (especialmente para aplicativos como aplicativos chrome, firefox, mysql e java).

Este é um efeito colateral bem conhecido dos sistemas operacionais de 64 bits de qualquer maneira. 64 bits também traz outras vantagens.

Aí vem x32 ABI: um recurso do kernel que se destina exatamente a limitar esse problema.

O que é x32 ABI: de
acordo com este pdf, ele oferece uma grande vantagem de memória em comparação com um sistema operacional normal de 64 bits (até 40% de melhoria).

Agora, se eu entendi x32-ABI, é necessário :

  • Linux Kernel 3.4 compilado com CONFIG_X86_X32 = y
  • Gcc 4.7
  • Binutils 2.22
  • Glibc 2.16
  • Recompilando todas as bibliotecas do sistema, exigidas por um aplicativo, com gcc -mx32

Como experimentar O
novo kernel tem o sinalizador requerido por padrão, então você precisa apenas do pacote compilado da maneira correta (aqui no Gentoo para regras certas;)
No Ubuntu, não tenho certeza se existe algum repositório / ppa para isso, de qualquer forma Debian e Arch tem alguma solução:

Debian

Arco


Suponho que ele precise adicionar opções de kernel no grub, como dito no wiki Debian.
Jarno

1
Do ponto de vista do usuário final do Ubuntu, a instalação de um sistema Ubuntu x32-ABI parece ser muito difícil :(
jarno
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.