Quais são as diferenças entre o kernel fornecido pelo Ubuntu e o kernel upstream?

31

Quais são as diferenças no conjunto de recursos entre o kernel principal do Linux e o kernel que está sendo usado pelo Ubuntu? Por que o Ubuntu é ramificado do kernel principal em vez de usar o kernel principal diretamente?

Andrew Stern
fonte

Respostas:

18

Os kernels upstream (referidos, quando os fornecemos, como kernels principais ) são simplesmente o kernel upstream para a versão especificada, com poucas alterações de configuração adicionadas para que haja um problema mínimo ao usá-los em uma instalação do Ubuntu.

A diferença entre esses kernels e o lançado para uma versão do Ubuntu são inúmeras outras alterações de configuração , patches de origem * e, em alguns casos, compilados em módulos e suporte de hardware.

Muito pouco do código subjacente é diferente do upstream, exceto o observado acima.

*: os patches de origem são, na maioria dos casos, alterações no comportamento padrão do kernel. Isso não se limita a: listas negras, tabelas de peculiaridades de vídeo, módulos integrados, alterações de origem que ainda não estão na árvore de Linus ou na fila estável, etc.

Os patches de origem são o que a equipe usa para apresentar opções de configuração necessárias para dar suporte à vasta gama de softwares lançados para uma versão específica do Ubuntu. Em muitos casos, são necessários para que esses aplicativos funcionem corretamente. A diferença fundamental entre esse e o kernel upstream é que o kernel upstream puro não é específico da distribuição.

Portanto, as configurações não são voltadas para garantir que certos aplicativos funcionem conforme o esperado. Essas configurações existem para fornecer esse nível de alteração ao kernel para coisas específicas. Além disso, o uso de peculiaridades nos permite identificar o hardware que requer itens específicos do kernel que podemos definir depois de detectá-los.

Esse é um dos principais recursos do Linux e é uma das razões pelas quais conseguimos rodar em tantas plataformas diversas ao longo dos anos. Há momentos em que as peculiaridades e os patches de origem causam problemas entre si. Durante esses períodos, trabalhamos para mitigar os problemas com alterações no comportamento subjacente do kernel. Em muitos casos, essas alterações não chegam à produção até após o lançamento devido em grande parte à necessidade de codificar corretamente a correção, documentar o que foi feito, testar as alterações e realizar vários outros testes e testes de estresse.

Nesses casos, os patches direcionados para o upstream são transportados como patches de origem da mesma maneira que os pré-estáveis ​​e os patches que ainda não estão na árvore de Linus. O link para a especificação delta review deve servir como referência para o que foi revisado para a versão atual do Natty do kernel do Ubuntu.

Jeremy Foshee
fonte
11
Há mais detalhes sobre os patches de molho e por que algumas mudanças na configuração são desejadas para o kernel do Ubuntu?
Andrew Stern
Andrew, sim, estou trabalhando em algum texto explicativo para adicionar ao que foi dito acima, que, espero, esclarecerá quais são as manchas de molho com um pouco mais de detalhes. :-)
Jeremy Foshee
2

O kernel Linux está em constante desenvolvimento. Ao empacotar seu próximo lançamento, em algum momento a equipe do Ubuntu tem que dizer: 'OK, vamos usar o kernel como está agora' De tempos em tempos, você pode obter um novo kernel disponível nos repositórios para usar no repositório. a distribuição atual.

Este lugar pode facilitar a leitura, mas pode ser altamente técnico. Você pode descobrir o que está cozinhando a montante e o que está perdendo no momento (mas acabará conseguindo).

Deve-se notar, como qualquer software, que um kernel está sujeito a erros e geralmente ocorre regressões (novos itens adicionados quebram a funcionalidade antiga). Atualmente, os kernels do IMHO não me excitam em termos de novas funcionalidades. Felizmente, eu rodava um kernel com dois anos de idade, por exemplo.

boehj
fonte
4
Embora tudo isso seja verdade, acho que você não entendeu bem a pergunta. Eu acho que o autor da pergunta estava se perguntando sobre os patches que o Ubuntu aplica ao kernel.
8128
0

Você pode baixar a árvore git do Ubuntu e usar um visualizador gráfico para visualizar a árvore git. Isso mostrará todos os patches do Ubuntu. https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide

Outra opção possível, assine a lista de discussão do ubuntu-kernel. Todo o trabalho deles é publicado lá, e você pode ter uma idéia do que eles fazem. Mas, é alto tráfego e IMHO, irritante. (Mas ei, é a lista deles )

user1974
fonte
2
bem, a lista é mais voltada para uma discussão aberta dos patches propostos. Provavelmente não é um lugar que lhe dê uma idéia clara do que fazemos. Eu recomendo o canal de IRC do FreeNode # ubuntu-kernel para isso.
21411 Jeremy Foshee