Em princípio, a regra de ouro do desenvolvimento do kernel é "nunca quebrar o espaço do usuário". Assim, você pode atualizar o kernel e todos os aplicativos devem funcionar. Mas na prática, deve nem sempre igual a faz . Isso se aplica especialmente a versões antigas do kernel; Não consigo pensar em uma mudança real desde a série 2.4.
A principal coisa que geralmente não funcionará é qualquer módulo de kernel de terceiros. Ao contrário das interfaces de usuário do kernel, as interfaces kernel-kernel que os módulos usam podem e frequentemente mudam de versão para versão, não apenas no nível binário, mas também no nível de origem. Se você possui módulos de kernel de terceiros e atualiza seu kernel, pode ser necessário obter versões correspondentes do módulo do kernel, se existirem.
Embora os aplicativos do usuário final geralmente sejam seguros, algumas ferramentas de administração ou relacionadas ao hardware dependem de interfaces de kernel que são declaradas instáveis. Em particular, a organização de arquivos em /sys
foi alterada ao longo de sua vida útil, e nem todos os programas o acessaram através das interfaces que permaneciam estáveis. As interfaces /proc
são mais estáveis, mas houve mudanças no passado; por exemplo, as interfaces de firewall foram alteradas de maneira incompatível com versões anteriores em 2.2 ( ipfwadm
→ ipchains
) e novamente em 2.4 ( ipchains
→ iptables
) (mas não desde então).
Outra coisa que pode mudar é a nomenclatura padrão das entradas em /dev
(por exemplo, porque alguns drivers de disco foram alterados de hd?
para sd?
). Isso pode ser evitado ou impresso por meio do udev.