Os kernels upstream (referidos, quando os fornecemos, como kernels mainline ) são simplesmente o kernel upstream para o kernel especificado versão, com pouquíssimas alterações de configuração adicionadas para que haja um problema mínimo usando-as 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 mudanças de configuração , correções de fontes * e, em alguns casos, compilados em módulos e suporte de hardware.
Muito pouco do código subjacente é diferente do upstream, além do mencionado acima.
*: os patches de origem são, na maioria dos casos, alterações no comportamento padrão do kernel. Estes não se limitam a: listas negras, tabelas de peculiaridades de vídeo, módulos internos, mudanças de fontes que ainda não estão na árvore Linus ou na fila estável, etc.
Patches de origem são o que a equipe usa para introduzir opções de configuração que são necessárias para suportar a vasta gama de softwares lançados para uma versão específica do Ubuntu. Em muitos casos, eles são necessários para que esses aplicativos funcionem corretamente. A diferença fundamental entre este 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 mudança ao kernel para coisas específicas. Além disso, o uso de peculiaridades nos permite identificar o hardware que requer coisas específicas do kernel que podemos definir quando os detectamos.
Esta é uma das principais características do Linux e é uma das razões pelas quais temos sido capazes de rodar em diversas plataformas ao longo dos anos. Há momentos em que as peculiaridades e os patches de origem causam problemas entre eles. Durante esses tempos, trabalhamos para mitigar os problemas com alterações no comportamento do kernel subjacente. Em muitos casos, essas alterações não são feitas antes do lançamento devido à necessidade de codificar adequadamente 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 que são enviados para upstream são carregados como patches de origem da mesma forma que os patches pré-estáveis e os que ainda não estão na árvore de Linus. O link para a especificação de revisão delta deve servir como uma referência para o que foi revisado para o lançamento atual do Natty do kernel do Ubuntu.