Suporte expandido

Suporte ao getrandom() no vDSO expande para mais arquiteturas no Linux 6.12

O getrandom() no vDSO será expandido para as arquiteturas LoongArch e ARM64 no Linux 6.12. O suporte para PowerPC está em revisão, trazendo mais eficiência na geração de números aleatórios seguros em diferentes plataformas.

Linux Kernel 6.12

O kernel Linux 6.11 introduziu o suporte ao getrandom() no vDSO, permitindo a geração de números aleatórios diretamente no espaço de usuário de forma rápida e segura. Inicialmente, esse suporte foi focado na arquitetura x86_64, mas com o lançamento do Linux 6.12, a implementação do getrandom() vDSO está sendo expandida para outras arquiteturas de CPU.

Com os patches já disponíveis no repositório random.git, mantido por Jason Donenfeld, o suporte ao getrandom() vDSO será estendido para as arquiteturas LoongArch e ARM64/AArch64, sendo especialmente relevante para dispositivos ARM64, onde essa implementação promete aumentar a eficiência na geração de números aleatórios seguros.

O primeiro patch implementa o suporte ao getrandom() no vDSO para a arquitetura ARM64/AArch64, utilizando uma implementação do ChaCha20 otimizada com NEON para maior desempenho, evitando gravações na pilha. Isso permite a geração eficiente de números aleatórios diretamente no espaço do usuário. A implementação também inclui testes de desempenho que demonstram melhorias consideráveis em relação ao uso de chamadas de sistema tradicionais. Para mais detalhes, você pode acessar o commit original aqui.

O segundo commit trata da implementação do suporte ao getrandom() no vDSO para a arquitetura LoongArch. Ele conecta a implementação genérica do vDSO à página de dados do vDSO da LoongArch, fornecendo as funções necessárias para o ChaCha20 sem usar a pilha. Além disso, os self-tests também foram integrados para garantir a funcionalidade correta. Essa implementação visa fornecer uma geração de números aleatórios eficiente no espaço de usuário, reduzindo o tempo de execução em comparação com chamadas de sistema tradicionais. Link para mais detalhes: Commit 96a619dc.

Além disso, o suporte ao getrandom() no vDSO para PowerPC (POWER), tanto para 32-bit quanto 64-bit, está em fase de revisão, ampliando ainda mais o alcance dessa funcionalidade para diferentes plataformas.

Jason Donenfeld também compartilhou que um novo patch (v4) para a GNU C Library (glibc) está em processo de revisão. Esse patch permitirá que distribuições Linux baseadas na glibc possam utilizar o getrandom() vDSO em arquiteturas compatíveis, oferecendo uma solução rápida e segura para geração de números aleatórios no espaço de usuário.