O atual ecossistema Android está poluído com centenas de versões diferentes do Android, cada uma executando uma variante diferente do kernel Linux. Cada versão é projetada para um telefone diferente e suas configurações são diferentes. O Google tem trabalhado para corrigir o problema adicionando o kernel Linux principal ao Android.
Como o kernel Linux é tratado atualmente no Android
Antes de chegar até você, o kernel do Linux em seu celular passa por três etapas principais.
Primeiro, o Google pega a versão LTS (Long Term Support) do kernel Linux e adiciona todo o código específico do Android. Este se torna o kernel Android Common.
O Google então envia esse código para a empresa que cria o System on a Chip (SoC) que opera o seu telefone. Geralmente é a Qualcomm.
Depois que o fabricante do SoC termina de adicionar o código para suportar a CPU e outros chips, o kernel é então passado para o fabricante do dispositivo real, como Samsung ou Motorola. O fabricante do dispositivo então adiciona o código para oferecer suporte ao resto do telefone, como a tela e a câmera.
Cada uma dessas etapas leva um tempo para ser concluída e resulta em um kernel que não funcionará com nenhum outro dispositivo. Isso também significa que o kernel está muito velho, geralmente cerca de dois anos. Por exemplo, o Google Pixel 4, lançado no mês passado, tem um kernel de novembro de 2017, que nunca será atualizado.
O Google se comprometeu a criar patches de segurança para dispositivos mais antigos, o que significa que eles ficarão de olho em uma enorme miscelânea de código antigo.
O futuro
No ano passado, o Google anunciou planos para consertar essa bagunça. Este ano, eles revelaram o progresso que fizeram na Linux Plumbers Conference 2019.
Sabemos o que é necessário para executar o Android, mas não necessariamente em qualquer hardware. Portanto, nosso objetivo é basicamente encontrar tudo isso, então fazer o upstream e tentar estar o mais próximo possível da linha principal. Sandeep Patil, líder da equipe do kernel do Android Eles mostraram um Xiaomi Poco F1 rodando Android com um kernel Linux adequado. No entanto, algumas coisas não pareciam estar funcionando, como a porcentagem da bateria que estava parada em 0%.
Então, como o Google planeja fazer isso funcionar? Pegando uma página do manual Project Treble. Antes do Project Treble, o código de baixo nível que interagia com o dispositivo e o próprio Android era uma grande bagunça de código. O Projeto Treble separou os dois e os tornou modulares para que as atualizações do Android pudessem ser enviadas mais rapidamente e o código de baixo nível pudesse permanecer inalterado entre as atualizações.
O Google quer trazer a mesma modularidade para o kernel. Seu plano envolve a estabilização da ABI no kernel do Linux e ter uma interface estável para o kernel do Linux e fornecedores de hardware para escrever. O Google quer desacoplar o kernel Linux de seu suporte de hardware.
Portanto, isso significa que o Google enviaria um kernel e os drivers de hardware seriam carregados como módulos do kernel. Atualmente, esta é apenas uma proposta. Ainda existem alguns problemas técnicos que precisam ser resolvidos. então, isso não vai acontecer tão cedo.
Oposição de código aberto
A comunidade Open Source não ficará feliz com a ideia de colocar código proprietário no kernel. As diretrizes do kernel do Linux afirmam que os drivers devem ter uma licença GPL para serem incluídos no kernel. Eles também apontam que se uma mudança no driver causar um erro, será resolvido pela pessoa que criou o erro. Isso significa menos trabalho para os fabricantes de dispositivos no longo prazo.
Considerações finais sobre a inclusão do kernel principal no Android
Até agora, esta é apenas uma proposta. Há uma boa chance de que o Google comece a trabalhar no projeto apenas para abandoná-lo quando perceber quanto trabalho será necessário. Basta dar uma olhada em quantos projetos o Google já abandonou.
Android Police fez um bom ponto ao mencionar que o Google está trabalhando em seu sistema operacional Fuchsia, que parece ter o objetivo de substituir o Android um dia.
Portanto, a questão é qual tarefa monumental o Google tentará concluir, fazer o Android rodar com um kernel Linux principal ou concluir o trabalho em sua substituição unificada do Android? Só o tempo pode responder a isso.
Quais são seus pensamentos sobre este assunto? Por favor, deixe-nos saber nos comentários abaixo.
Se você achou este artigo interessante, reserve um minuto para compartilhá-lo nas redes sociais, Hacker News ou Reddit.
Via itsfoss.com. Você pode conferir o post original em inglês:
Google to Add Mainline Linux Kernel Support to AndroidÚltima atualização deste artigo: 25 de november de 2019