Um kernel unificado não resolve a fragmentação do Android

Um kernel unificado não resolve a fragmentação do Android
Imagem: Reprodução | Android Authority.

A fragmentação do Android e a falta de um kernel unificado é um problema constante para o sistema operacional mais popular do mundo. Enquanto os consumidores sofisticados são tratados com uma nova versão do Android a cada ano, outra versão surge antes mesmo de chegar ao topo da fatia de mercado. Nas camadas mais acessíveis, ainda é muito comum estar um ano desatualizado, junto com atualizações pouco frequentes e patches de segurança ausentes.

O Google se esforçou bastante para resolver o problema ao longo dos anos, embora seja duvidoso que a fragmentação do Android possa ser realmente resolvida. O Android Pie estava rodando em muito mais dispositivos em seu primeiro ano do que seus antecessores. Esperamos ver uma adoção ainda mais rápida do Android 10, já que vários fabricantes foram rápidos em oferecer programas beta.

Apesar do esforço para acelerar as atualizações do sistema operacional e de segurança, há problemas subjacentes na maneira como o Android funciona, que impede uma solução ideal. Na Linux Plumbers Conference deste ano, o Google lançou outro band-aid para o problema, desta vez tentando fazer com que os telefones Android funcionassem com um kernel Linux genérico em vez de personalizado.

Entendendo o problema do kernel do Linux

Apesar da rápida adoção de novas versões do sistema operacional, o Android está cada vez mais fragmentado. Imagem: Reprodução | Android Authority.

O que você deve entender é que o kernel é a interface entre o hardware do seu telefone e os processos de software. Por exemplo, você quer que o software do seu telefone possa conversar com o hardware da câmera. O Android é baseado no kernel do Linux.

Quando se trata do Android, o desenvolvimento do kernel do Linux é dividido em três estágios distintos. Cada um deles afastando-se do kernel Linux de suporte a longo prazo (LTS, sigla em inglês) em que o Android se baseia.

Primeiro, há o kernel comum do Android, que aplica todos os recursos e patches específicos do Android ao LTS. Em seguida, ele é enviado aos fornecedores (como Qualcomm, Samsung ou Huawei), onde são adicionados patches específicos de hardware. Essa versão do kernel do Linux é então repassada aos fabricantes de telefones, que adicionam seus próprios patches de hardware específicos ao dispositivo. Isso inclui suporte para áudio, câmera, tela e outros recursos.

Um kernel unificado vs fragmentação do Android

O kernel que termina no seu telefone é muito diferente do kernel inicial. Isso impossibilita a aplicação de atualizações universais.

Como resultado, dois telefones não acabam usando o mesmo kernel. Com o Android, o hardware exclusivo requer um kernel exclusivo e a atualização de uma parte requer a atualização de todo o sistema. As versões do Android precisam passar por muitas empresas (cada uma com suas próprias prioridades) antes de chegar ao consumidor. É por isso que os telefones geralmente são baseados nas versões LTS de dois anos e que as atualizações demoram tanto.

O Projeto Treble tentou solucionar parte desse problema, separando o sistema operacional Android e as estruturas de hardware (HAL, sigla em inglês). Isso permite que o software funcional seja atualizado de forma um pouco mais independente.

Um kernel genérico com módulos

O Google prevê um kernel Linux dividido, com uma imagem genérica e vários módulos. Imagem: Reprodução | Android Authority.

O objetivo do Google é mudar para um kernel genérico central e vários módulos do kernel. Os módulos do kernel são mais dependentes do hardware, enquanto o kernel genérico contém os patches necessários para o Android central. Isso finalmente permitiria que o Android operasse de uma maneira mais familiar aos PCs, onde os módulos do kernel são atualizados como drivers de PC. O núcleo do sistema operacional pode ser atualizado separadamente, permitindo que versões mais recentes do LTS cheguem ao mercado mais rapidamente.

Em teoria, isso tornaria muito mais fácil aplicar atualizações de software e segurança sem ter que se preocupar com hardware. No entanto, é provável que testes de compatibilidade ainda sejam necessários e o envolvimento dos fornecedores de hardware ainda seja necessário em algum momento. Como gerenciar tudo isso continua sendo uma questão não resolvida.

Atualmente, tudo é atualizado de uma só vez. O Google quer uma abordagem mais modular.

Limites do modelo

Há também um limite importante na proposta do Google. Atualmente, o Google sugere apenas que o kernel precisa ser estável para uma única versão LTS. A ideia não é atualizar entre as versões do Linux; em vez disso, o modelo foi projetado para permitir que um kernel geral funcione em vários dispositivos, em vez das milhares de versões de fornecedores e de fabricante bifurcadas que terminam indo para os dispositivos. A aplicação de atualizações de segurança e pequenas correções seria muito mais fácil dessa maneira, mas as principais atualizações do sistema operacional ainda podem não ser tão fáceis.

Apesar de o Google mostrar claramente interesse em um kernel Android unificado, não há garantia de que ele possa ser realizado e, certamente, não tão cedo. Talvez o futuro sistema operacional Fuchsia do Google resolva esse problema.

Mesmo que o Google tenha migrado o Android para esse esquema, ele não necessariamente resolverá o problema de fragmentação do Android. As atualizações de segurança podem ser mais rápidas, mas ainda não serão necessariamente regulares, e as principais atualizações do sistema operacional ainda são um problema a ser resolvido.

Neste artigo, você viu que um kernel unificado não resolve a fragmentação do Android.

Fonte: Android Authority

Leia também:

Fuchsia rodará aplicativos Android

Google quer usar o kernel Linux não modificado no Android

Acesse a versão completa
Sair da versão mobile