Na última conferência Linux Plumbers 2019, o Google
Assim que o projeto estiver pronto, os fornecedores serão solicitados a fornecer um kernel base baseado no kernel principal do Linux. Os componentes para suporte de hardware serão fornecidos pelos fornecedores apenas na forma de módulos adicionais do kernel, sem aplicação de patches ao kernel. Os módulos precisarão ser compatíveis com o kernel principal no nível do namespace do símbolo do kernel. Todas as alterações que afetem o núcleo principal serão promovidas para o upstream. Para manter a compatibilidade com módulos proprietários nas ramificações LTS, propõe-se manter a API e a ABI do kernel em uma forma estável, o que manterá a compatibilidade do módulo com atualizações para cada ramificação comum do kernel.
Ao longo de um ano, recursos como o subsistema PSI (Pressure Stall Information) para análise de informações sobre o tempo de espera para obtenção de diversos recursos (CPU, memória, I/O) e o sistema de pseudoarquivos BinderFS para comunicação entre processos O mecanismo foi transferido para o kernel Linux principal da edição do kernel Android.Binder e agendador de tarefas com eficiência energética EAS (Energy Aware Scheduling). No futuro, o Android está planejado para ser transferido do agendador SchedTune específico para o novo subsistema UtilClamp desenvolvido em ARM, baseado em cgroups2 e mecanismos de kernel padrão.
Lembremos que até agora o kernel da plataforma Android passou por vários estágios de preparação:
- Com base nos principais kernels LTS (3.18, 4.4, 4.9 e 4.14), foi criado um ramo do “Android Common Kernel”, para o qual foram transferidos patches específicos do Android (anteriormente o tamanho das alterações atingia vários milhões de linhas, mas recentemente as alterações foram reduzidas a vários milhares de linhas de código).
- Com base no "Android Common Kernel", fabricantes de chips como a Qualcomm formaram o "SoC Kernel" que incluía complementos para suportar o hardware.
- Com base no SoC Kernel, os fabricantes de dispositivos criaram o Device Kernel, que incluiu alterações relacionadas ao suporte para equipamentos adicionais, telas, câmeras, sistemas de som, etc.
Em essência, cada dispositivo tinha seu próprio kernel, que não podia ser usado em outros dispositivos. Tal esquema complica significativamente a implementação de atualizações para eliminar vulnerabilidades e a transição para novas ramificações do kernel. Por exemplo, o mais novo smartphone Pixel 4, lançado em outubro, vem com o kernel Linux 4.14, lançado há dois anos. Em parte, o Google tentou simplificar a manutenção promovendo o sistema
Fonte: opennet.ru