Kernel

O kernel do Linux é uma parte extremamente importante do software em quase todos os dispositivos Android. Esta seção descreve os modelos de desenvolvimento e lançamento do kernel Linux (abaixo), kernels estáveis e de longo termo suportados (LTS) (incluindo porque todos os dispositivos Android devem usar stablereleases ao invés de cherry picking patches), kernelconfiguration andhardening,requirements forinterfaces andthemodular kernels(introduzido no Android O), kerneldebugging andnetwork testing,e SquashFS.

Linux kernel development

O kernel Linux é o maior projeto de software colaborativo de todos os tempos. Em 2016, mais de 4.000 desenvolvedores diferentes de mais de 450 empresas diferentes contribuíram para o projeto e houve 6 lançamentos, cada um contendo entre 12.000 e 16.000 mudanças diferentes. No final de 2016, o tamanho do kernel Linux era pouco mais de 56 mil arquivos, consistindo de 22 milhões de linhas de código, scripts de construção e documentação (versão 4.9 do kernel). (Para estatísticas completas de desenvolvimento do Linux,consultehttps://kernelnewbies.org/DevelopmentStatistics.)

Embora o kernel Linux contenha código para todas as diferentes arquiteturas de chip e drivers de hardware que ele suporta, um sistema individual roda apenas uma fração da base de código. Um laptop usa em média cerca de 2 milhões de linhas de código do kernel de 5 mil arquivos para funcionar corretamente, enquanto o telefone Pixel usa 3,2 milhões de linhas de código do kernel de 6 mil arquivos (devido ao aumento da complexidade de um SoC).

Linux kernel releases

O kernel Linux usa um modelo de release que difere substancialmente dos releases padrão do AOSP. Com o lançamento do kernel 2.6 em dezembro de 2003, a comunidade de desenvolvedores do kernel mudou do modelo anterior de ter um desenvolvimento separado e ramo de kernel estável, e mudou para um modelo de ramo somente estável. Neste modelo, um novo lançamento ocorreu a cada 2 ou 3 meses, e esse lançamento foi declarado estável e recomendado para que todos os usuários rodassem. Esta mudança no modelo de desenvolvimento foi devido ao ciclo de lançamento muito longo antes do kernel 2.6 (quase 3 anos), e a luta tomou dois ramos diferentes da base de código ao mesmo tempo.

A numeração dos lançamentos do kernel começou em 2.6.x, onde x foi um número crescente que mudou a cada lançamento (o valor do número não tem significado, além de ser mais novo que o lançamento anterior do kernel). A versão do kernel desde então passou para a versão 4.x contabilizando 2 mudanças principais de versão. Estes números de versão são escolhidos pelo(s) mantenedor(es) apenas para evitar confusão entre usuários causada por números menores maiores.

Deixe uma resposta

O seu endereço de email não será publicado.