Os drivers são mantidos no kernel, portanto, quando uma alteração no kernel exige uma pesquisa e substituição global (ou pesquisa e modificação manual) para todos os usuários de uma função, ela é feita pela pessoa que faz a alteração. Ter seu driver atualizado por pessoas fazendo alterações na API é uma vantagem muito boa, em vez de ter que fazer isso sozinho quando ele não é compilado em um kernel mais recente.
A alternativa (que é o que acontece para os drivers mantidos fora da árvore), é que o patch tem que ser re-sincronizado pelos seus mantenedores para acompanhar quaisquer alterações.
Uma pesquisa rápida revelou um debate sobre desenvolvimento de drivers na árvore vs. fora da árvore .
A maneira como o Linux é mantido é principalmente mantendo tudo no repositório mainline. O desenvolvimento de pequenos kernels despojados é suportado pelas opções de configuração para controlar #ifdef
s. Então você pode absolutamente construir minúsculos kernels despojados que compilam apenas uma pequena parte do código em todo o repositório.
O uso extensivo do Linux em sistemas embarcados levou a um melhor suporte para deixar o material fora do Linux anos antes, quando a árvore de código-fonte do kernel era menor. Um kernel 4.0 super-minimal é provavelmente menor que um kernel 2.4.0 super-minimal.