Páginas

sábado, 19 de setembro de 2026

O Google Aposenta o Binder em C: A Migração para o Rust que Redefine o kernel Linux



O Google remove o driver Binder em C do kernel Linux após 15 anos. Entenda a migração para o Rust, impactos na segurança, performance e o que muda para Android.


O fim de uma era no kernel Linux


Após mais de 15 anos de serviço, o driver Binder escrito em linguagem C está oficialmente de saída do kernel Linux. A decisão foi anunciada por Carlos Llamas, engenheiro do Google, por meio do patch “[PATCH] binder: rm -f binder.c”, que remove nada menos que 11.470 linhas de código C do kernel.

O Binder é o mecanismo de comunicação entre processos (IPC) utilizado pelo Android. Ele permite que diferentes aplicações e serviços do sistema troquem mensagens de forma segura e eficiente. 

Durante anos, foi a espinha dorsal da arquitetura do Android, mas o acúmulo de complexidade tornou sua manutenção um verdadeiro pesadelo.

“O driver C cresceu cada vez mais complexo ao longo de 15+ anos, tornando incrivelmente doloroso mantê-lo e adicionar novos recursos sem tropeçar em vulnerabilidades.” — Carlos Llamas, engenheiro do Google

A substituição não é apenas uma troca de linguagem. Representa uma mudança de paradigma na forma como o kernel Linux lida com drivers críticos de segurança.


Por que o Binder em C foi aposentado?


O driver Binder em C carregava uma dívida técnica acumulada ao longo de mais de uma década. O código original remonta aos primeiros dias do Android, quando a plataforma ainda engatinhava. 

Com o tempo, o driver cresceu em complexidade, incorporando funcionalidades de gerenciamento de memória, controle de threads, sistema de referências e comunicação entre processos.

Cada nova funcionalidade adicionava camadas de complexidade a um código que já era difícil de manter. O resultado era um driver propenso a vulnerabilidades — falhas de use-after-free, condições de corrida e vazamentos de memória eram riscos constantes. 

Adicionar novos recursos sem introduzir bugs tornou-se uma tarefa cada vez mais arriscada.

A linguagem C, embora poderosa e onipresente no kernel, não oferece garantias de segurança de memória. O programador é responsável por gerenciar manualmente a alocação e liberação de memória, o que abre margem para erros que podem comprometer todo o sistema. 

Em um driver que roda no espaço do kernel — com os privilégios máximos —, um único erro pode significar desde uma falha do sistema até uma escalada de privilégios por um atacante.


A ascensão do Rust no kernel Linux


O Rust entrou no kernel Linux como um experimento em 2022, com a versão 6.1. A linguagem, desenvolvida pela Mozilla, prometia algo que o C nunca ofereceu: segurança de memória garantida em tempo de compilação, sem sacrificar performance.

Em dezembro de 2025, durante o Linux Kernel Maintainers Summit, o experimento foi oficialmente declarado concluído. Miguel Ojeda, líder do projeto Rust for Linux, anunciou que o Rust deixava de ser um experimento para se tornar parte permanente do kernel.

“O experimento acabou, ou seja, o Rust veio para ficar.” — Miguel Ojeda, líder do Rust for Linux

O Rust Binder foi um dos primeiros drivers “reais” a serem reescritos na linguagem. Ele foi upstreamado no Linux 6.18 e, desde então, tem rodado em milhões de dispositivos Android. Alice Ryhl, engenheira do Google, dedicou anos ao projeto, alcançando paridade total de funcionalidades com o driver em C.


Produto Recomendado


👨‍💻 Todo dev sabe: confiança se conquista no código. E a sua camiseta pode dizer isso por você.

Apresentamos a Camiseta Programador In Code We Trust — 100% algodão, corte masculino, perfeita para o dia a dia no escritório, home office ou meetup.


✅ 100% algodão: conforto e respirabilidade

✅ Estampa "In Code We Trust"

✅ Cores: Vermelho, Preto e Verde Musgo

✅ Ideal para programadores, estudantes e entusiastas de tecnologia


Vista a camiseta de quem realmente entende de código.

🔥 Estoque limitado! Clique abaixo e garanta a sua antes que acabe.



Camiseta Programador In Code We Trust 100% -> https://link.amazon/B0ibvJBVr

Eu ganho uma comissão quando você faz uma compra.



Performance: o Rust é mais rápido que o C?


Uma das maiores preocupações quando se fala em reescrever código crítico em uma nova linguagem é a performance. No caso do Binder, a resposta é clara: o Rust não só iguala, como em muitos cenários supera o C.

Nos benchmarks do Binder, o Rust apresentou resultados expressivos. Na alocação de handles, por exemplo, enquanto o baseline em Rust levava 176,88 microssegundos para transações de 0 a 10.000, a versão otimizada com o bitmap caiu para 92,93 microssegundos — praticamente metade do tempo, e ligeiramente mais rápido que os 99,41 microssegundos do C.

Em chamadas individuais, o Rust gasta cerca de 6,35 nanossegundos por chamada, contra 5,73 nanossegundos do C. Com otimizações de inlining, as duas linguagens se igualam. 

O que esses números mostram é que a segurança adicional do Rust não vem com um custo significativo de performance — e em operações críticas, pode até ser mais eficiente.


Segurança: o que o Rust realmente resolve?


O Rust elimina classes inteiras de vulnerabilidades que assombram o C há décadas. Erros como use-after-free, double-free e buffer overflows são impossíveis de ocorrer em código Rust seguro — o compilador simplesmente não permite.

No contexto de um driver de kernel, isso é transformador. Um buffer overflow no Binder em C poderia permitir que um aplicativo malicioso executasse código no kernel, comprometendo todo o dispositivo. Com Rust, esse vetor de ataque desaparece.

No entanto, é importante ser honesto: o Rust não é uma bala de prata. Em dezembro de 2025, foi divulgada a primeira vulnerabilidade em código Rust no kernel Linux — a CVE-2025-68260, uma condição de corrida no Binder que poderia causar falha do sistema. O problema ocorreu em código unsafe, onde o Rust permite operações que o compilador não pode verificar.

A lição é clara: o Rust reduz drasticamente a superfície de ataque, mas não a elimina completamente. Código unsafe ainda requer cuidado, e revisões rigorosas continuam sendo essenciais. A diferença é que, em Rust, o unsafe é explícito e localizado — o desenvolvedor sabe exatamente onde estão os riscos.


O que muda para o Android e para os usuários?


Para o usuário final, a mudança deve ser imperceptível. O Rust Binder foi projetado para ser transparente para o espaço do usuário — os aplicativos Android continuam enviando e recebendo as mesmas mensagens, sem qualquer alteração.

O que muda é a confiabilidade do sistema. Com um driver mais seguro, menos vulnerabilidades são introduzidas, e as atualizações de segurança podem ser aplicadas de forma mais ágil. 

Para os desenvolvedores, a manutenção do código se torna mais simples e menos arriscada.

A transição também sinaliza um compromisso de longo prazo da Google com o Rust no kernel. O Android 16 já utiliza o Rust Binder como padrão, e a empresa tem investido pesadamente na linguagem. 

Isso não significa que o C será abandonado — ele continua sendo a linguagem predominante do kernel —, mas abre caminho para que mais drivers críticos sejam migrados.


FAQ — Perguntas frequentes


1. O que é o Binder e por que ele é importante para o Android?

O Binder é o mecanismo de comunicação entre processos (IPC) do Android. Ele permite que aplicativos e serviços do sistema troquem dados de forma segura e eficiente. Sem o Binder, a arquitetura modular do Android simplesmente não funcionaria.


2. O Rust Binder já está disponível para uso?


Sim. O Rust Binder foi upstreamado no Linux 6.18 e já roda em dispositivos Android. A remoção do driver C está prevista para o ciclo do Linux 7.4.


3. Isso significa que o C será substituído pelo Rust no kernel Linux?

Não. O C continua sendo a linguagem predominante do kernel Linux. A migração do Binder é um caso específico de um driver crítico que se beneficia enormemente das garantias de segurança do Rust. Outros drivers podem ou não seguir o mesmo caminho.


Checklist: o que você precisa saber sobre a migração


Copie e use esse Checklist



O driver Binder em C será removido no Linux 7.4.

O Rust Binder foi upstreamado no Linux 6.18.

A migração começou como um “experimento” em 2022.

O Rust Binder já roda em milhões de dispositivos Android.

A performance do Rust iguala ou supera a do C.

O Rust elimina classes inteiras de vulnerabilidades.

O código unsafe ainda requer cuidado (CVE-2025-68260).

A mudança é transparente para o usuário final.


Conclusão: o futuro é seguro — e escrito em Rust



A migração do Binder de C para Rust não é apenas uma troca de linguagem. É um sinal claro de que o kernel Linux está evoluindo para abraçar a segurança de memória como prioridade. 

O Rust não substituirá o C — pelo menos não tão cedo —, mas provou que pode ocupar espaços críticos com performance igual ou superior e uma segurança incomparavelmente maior.

Para quem trabalha com desenvolvimento de sistemas, entender Rust deixou de ser diferencial e passou a ser necessidade. 

O kernel Linux já é escrito em Rust. O Android já roda Rust. O futuro dos sistemas seguros passa por essa linguagem.

Copie e use o nosso checklist completo sobre a migração do Binder para Rust e compartilhe este artigo com sua equipe. Se você já programa em Rust ou está pensando em aprender, deixe um comentário contando sua experiência. 

E não se esqueça de se inscrever para receber mais conteúdos como este.


Nenhum comentário:

Postar um comentário