Quais são as modificações feitas no kernel do Linux para torná-lo um kernel do Android? Com esta pergunta, quero dizer quais são as diferenças entre o kernel linux e o kernel android?
Quais são as modificações feitas no kernel do Linux para torná-lo um kernel do Android? Com esta pergunta, quero dizer quais são as diferenças entre o kernel linux e o kernel android?
Respostas:
As diferenças mudam de versão para versão (do Linux e do Android), e o kernel exato é diferente para cada dispositivo. Um kernel para Android é um kernel Linux convencional, com drivers adicionais para o dispositivo específico e outras funcionalidades adicionais, como gerenciamento aprimorado de energia ou suporte gráfico mais rápido.
Muitos recursos do kernel do Android são adicionados posteriormente ao upstream do Linux depois que a comunidade de código-fonte aberto os aceita (e talvez modifique), mas outros nunca são atualizados, porque não são aceitáveis pelos desenvolvedores do kernel do Linux ou porque ' são aplicáveis apenas ao Android ou a hardware específico.
Além das diferenças específicas do dispositivo e do bloqueio de ativação mencionados por Dan Hulme e Lie Ryan, o Android removeu os recursos do IPC do System V (filas de mensagens, segmentos de memória compartilhada, semáforos) que poderiam levar a vazamentos de recursos ( http://www.kandroid.org/ndk /docs/system/libc/SYSV-IPC.html ). Provavelmente, isso é apenas uma questão de configurar a compilação do kernel. Além disso, o IPC de escolha do Android, chamado Binder, tem algum suporte no kernel que, pelo que sei, não está incluído nos kernels Linux padrão.
Eu acho que essa fonte do Android é uma ótima documentação para entendê-la.
E aqui está uma lista de alterações feitas no kernel da linha principal para o kernel do Android 4.14.
Os maiores recursos incluem:
Diferenças do LTS
Quando comparado ao LTS (4.14.0), o kernel comum do Android tem 355 alterações, 32266 inserções e 1546 exclusões (a partir de fevereiro de 2018).