Qual é a diferença entre o Linux Kernel e o Android Kernel?
18
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?
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.
A maioria dos drivers para hardware específico do Android foi aceita no kernel da linha principal; mas alguns recursos, como o bloqueio de ativação que causou uma enorme controvérsia há algum tempo, permanecem problemáticos porque o desenvolvedor do kernel da linha principal e do Android discorda se é uma boa ideia.
Lie Ryan
"Um núcleo para Android é um núcleo principal do Linux, com drivers adicionais para o dispositivo específico e outras funcionalidades adicionais, como gerenciamento aprimorado de energia ou suporte gráfico mais rápido", então são principalmente drivers? Nenhum código fonte foi alterado?
Guerlando OCs 04/08/19
@GuerlandoOCs Não tenho certeza do que você acha que os drivers são senão uma alteração no código-fonte, mas, independentemente disso, a "outra funcionalidade adicional" que mencionei é bastante grande nos dias de hoje. Há muitas alterações no código fonte.
Dan Hulme
@ DanHulme: a fonte muda os patches ou apenas o código é alterado manualmente? Como posso ver as coisas que mudaram? Eu li que você pode corrigir seu kernel do Linux para ser compatível com o Android, mas onde estão esses patches para que eu possa lê-los?
Guerlando OCs 08/08/19
5
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.
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.
fonte
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.
fonte
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).
fonte