A arquitetura Linux Kernel x32 pode ser descontinuada

Linux Kernel 4.19

Recentemente um e-mail foi liberado através da mailing list Linux Kernel e este email tem como principal objetivo remover o código da implementação da subarquitetura x32 (não deve ser confundido com x86 IA-32).

O que permite usar o modelo de endereçamento de memória de 32 bits (x86 híbrido e x86_64) em sistemas x86 de 64 bits.

Qual é a arquitetura x32?

É importante mencionar que a subarquitetura x32 é uma ABI x86_64 híbrida, que permite que um modelo de endereçamento de memória de 32 bits seja usado em sistemas de 64 bits (o processador opera no modo de 64 bits, mas usa ponteiros de 32 bits e operações aritméticas).

ABI X32 permite que os aplicativos aproveitem ao máximo a arquitetura x86_64, como registradores adicionais e instruções mais rápidas, PIC ABI.

Ao mesmo tempo, o ABI X32 suporta ponteiros de memória de 32 bits, o que economiza memória, contribui para o preenchimento mais eficiente do cache do processador e tem um efeito positivo na velocidade geral de execução do código.

A limitação do ABI X32 é a impossibilidade de direcionar mais de 4 GB de memória do aplicativo.

O suporte para X32 faz parte do kernel do Linux desde seu lançamento 3.4, formado em maio de 2012.

Os desenvolvedores irão debater se continuarão com a manutenção desta arquitetura ou não

De acordo com o desenvolvedor que propõe a remoção da tecnologia x32 não foi justificado e não encontrou uma aplicação prática em layouts industriais modernos.

Além disso, eO código x32 usa um método bastante controverso de trabalhar com chamadas de sistema, o que cria o risco de interromper a operação normal após o processamento das implementações de chamada do sistema.

Linus Torvalds disse que concordaria em remover x32 se não houver argumentos apresentados ou se os sistemas nos quais a sub-arquitetura x32 foi aplicada não forem apresentados.

Linus Ele também observou que o uso da arquitetura x32 estava aparentemente limitado a testes de desempenho extremoss, já que o suporte para esta sub-arquitetura está associado a uma grande quantidade de trabalho na manutenção das distribuições e no ambiente de desenvolvimento.

Correio:

Olá a todos.

Estou pensando seriamente em enviar um patch para remover o suporte x32 do Linux. Aqui estão alguns problemas com isso:

  1. Não está totalmente claro se ele possui usuários. Pelo que eu sei, é compatível com Gentoo e Debian
  2. A forma como o sistema de chamadas funciona é muito estranha. A maioria das syscalls em x32 entra por meio de seu * nativo * (ou seja, não COMPAT_SYSCALL_DEFINE) com o ponto de entrada, e isso é intencional.

Por exemplo, adjtimex () usa a entrada nativa, não a entrada compat, porque o x32 struct timex corresponde ao layout x86_64. Mas um punhado de syscalls tem pontos de entrada separados - são as syscalls que começam em 512.

Eles entram por meio dos pontos de entrada COMPAT_SYSCALL_DEFINE.

Syscalls X32 que * não * estão no intervalo 512 violam todas as semelhanças da convenção de syscall do kernel.

Em manipuladores syscall, in_compat_syscall () retorna true, mas a entrada COMPAT_SYSCALL_DEFINE não é invocada, isso é insano e você corre o risco de quebrar coisas quando as pessoas refatoram suas implementações syscall.

E, acima de tudo, ninguém tenta essas coisas.

Em uma ocasião, Ao testar o x32, um dos desenvolvedores do Gentoo concluiu que a melhoria de desempenho ao mudar para ABI x32 não é tão grande quanto os testes sintéticos mostram Dos fabricantes do ABI x32:

Um progresso significativo é visto apenas quando comparado com a arquitetura x86 anterior, mas quando comparado com a arquitetura x86-64 atual, o ganho é insignificante (testes de SPEC pelos criadores do x32 mostraram até 40% de aceleração em comparação com o clássico ABI x86_64, testes com o codec H.264 mostrou uma aceleração de 15-20%).


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.